\documentclass[a4paper, final]{article}
%\usepackage{literat} % Нормальные шрифты
\usepackage[14pt]{extsizes} % для того чтобы задать нестандартный 14-ый размер шрифта
\usepackage[T2A]{fontenc}
\usepackage[UTF8]{inputenc}
\usepackage[russian]{babel}
\usepackage{listings} %листинги
\usepackage{amsmath}
\usepackage{multicol}
\usepackage{amssymb} % Для красивого значка пустого множества
\usepackage[left=25mm, top=20mm, right=20mm, bottom=20mm, footskip=10mm]{geometry}
\usepackage{ragged2e} %для растягивания по ширине
\usepackage{setspace} %для межстрочного интервала
\usepackage{indentfirst} % для абзацного отступа
\usepackage{moreverb} %для печати в листинге исходного кода программ
\renewcommand\verbatimtabsize{4\relax}
\renewcommand\listingoffset{0.2em} %отступ от номеров строк в листинге
\renewcommand{\arraystretch}{1.4} % изменяю высоту строки в таблице
\usepackage[font=small, singlelinecheck=false, justification=centering, format=plain, labelsep=period]{caption} %для настройки заголовка таблицы
\usepackage{listingsutf8}
\usepackage{xcolor} % цвета
\usepackage{hyperref}% для гиперссылок
\usepackage{enumitem} %для перечислений
\usepackage{titlesec}
\usepackage{graphicx}
\graphicspath{ {./Рисунки/} }
%\usepackage{float}
\usepackage{booktabs}
\usepackage{floatrow}
\usepackage{scalerel} % Stretching images
\usepackage[final]{pdfpages}
\usepackage{dashrule}
\usepackage{multirow} 
\usepackage{tabularx}
\usepackage{titlesec}

\setcounter{secnumdepth}{4}

\titleformat{\paragraph}
{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}
\titlespacing*{\paragraph}
{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}

\definecolor{apricot}{HTML}{FFF0DA}
\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{string}{HTML}{B40000} % цвет строк в коде
\definecolor{comment}{HTML}{008000} % цвет комментариев в коде
\definecolor{keyword}{HTML}{1A00FF} % цвет ключевых слов в коде
\definecolor{morecomment}{HTML}{8000FF} % цвет include и других элементов в коде
\definecolor{captiontext}{HTML}{FFFFFF} % цвет текста заголовка в коде
\definecolor{captionbk}{HTML}{999999} % цвет фона заголовка в коде
\definecolor{bk}{HTML}{FFFFFF} % цвет фона в коде
\definecolor{frame}{HTML}{999999} % цвет рамки в коде
\definecolor{brackets}{HTML}{B40000} % цвет скобок в коде





\AtBeginDocument{\renewcommand{\contentsname}{Содержание}}
\AtBeginDocument{\renewcommand{\refname}{Список источников}}

\floatsetup[table]{style=plain,capposition=bottom}
\setlist[enumerate,itemize]{leftmargin=1.2cm} %отступ в перечислениях

\hypersetup{colorlinks,
  allcolors=[RGB]{010 090 200}} %красивые гиперссылки (не красные)

% подгружаемые языки — подробнее в документации listings (это всё для листингов)
\lstloadlanguages{ [LaTeX] TeX}
% включаем кириллицу и добавляем кое−какие опции
\lstset{language =[LaTeX] TeX, % выбираем язык по умолчанию
extendedchars=true , % включаем не латиницу
escapechar = | , % |«выпадаем» в LATEX|
frame=tb , % рамка сверху и снизу
commentstyle=\itshape , % шрифт для комментариев
stringstyle =\bfseries} % шрифт для строк

\textheight=24cm % высота текста
\textwidth=16cm % ширина текста
\oddsidemargin=0pt % отступ от левого края
\topmargin=-1.5cm % отступ от верхнего края
\parindent=0pt % абзацный отступ
\parskip=0pt % интервал между абзацами
\tolerance=2000 % терпимость к "жидким" строкам
\flushbottom % выравнивание высоты страниц

\begin{document} % начало документа
\lstset{
  language=SQL, % Язык кода по умолчанию
  morekeywords={*,...}, % если хотите добавить ключевые слова, то добавляйте
  % Цвета
  keywordstyle=\color{keyword}\ttfamily\bfseries,
  %stringstyle=\color{string}\ttfamily,
  stringstyle=\ttfamily\color{red!50!brown},
  commentstyle=\color{comment}\ttfamily,
  morecomment=[l][\color{morecomment}]{\#},
  % Настройки отображения
  breaklines=true, % Перенос длинных строк
  basicstyle=\ttfamily\footnotesize, % Шрифт для отображения кода
  backgroundcolor=\color{bk}, % Цвет фона кода
  frame=single,xleftmargin=\fboxsep,xrightmargin=-\fboxsep, % Рамка, подогнанная к заголовку
  rulecolor=\color{frame}, % Цвет рамки
  tabsize=3, % Размер табуляции в пробелах
  % Настройка отображения номеров строк. Если не нужно, то удалите весь блок
  numbers=left, % Слева отображаются номера строк
  stepnumber=1, % Каждую строку нумеровать
  numbersep=5pt, % Отступ от кода
  numberstyle=\small\color{black}, % Стиль написания номеров строк
  % Для отображения русского языка
  extendedchars=true,
  literate={Ö}{ {\"O} }1
  {~}{ {\textasciitilde} }1
  {а}{ {\selectfont\char224} }1
  {б}{ {\selectfont\char225} }1
  {в}{ {\selectfont\char226} }1
  {г}{ {\selectfont\char227} }1
  {д}{ {\selectfont\char228} }1
  {е}{ {\selectfont\char229} }1
  {ё}{ {\"e} }1
  {ж}{ {\selectfont\char230} }1
  {з}{ {\selectfont\char231} }1
  {и}{ {\selectfont\char232} }1
  {й}{ {\selectfont\char233} }1
  {к}{ {\selectfont\char234} }1
  {л}{ {\selectfont\char235} }1
  {м}{ {\selectfont\char236} }1
  {н}{ {\selectfont\char237} }1
  {о}{ {\selectfont\char238} }1
  {п}{ {\selectfont\char239} }1
  {р}{ {\selectfont\char240} }1
  {с}{ {\selectfont\char241} }1
  {т}{ {\selectfont\char242} }1
  {у}{ {\selectfont\char243} }1
  {ф}{ {\selectfont\char244} }1
  {х}{ {\selectfont\char245} }1
  {ц}{ {\selectfont\char246} }1
  {ч}{ {\selectfont\char247} }1
  {ш}{ {\selectfont\char248} }1
  {щ}{ {\selectfont\char249} }1
  {ъ}{ {\selectfont\char250} }1
  {ы}{ {\selectfont\char251} }1
  {ь}{ {\selectfont\char252} }1
  {э}{ {\selectfont\char253} }1
  {ю}{ {\selectfont\char254} }1
  {я}{ {\selectfont\char255} }1
  {А}{ {\selectfont\char192} }1
  {Б}{ {\selectfont\char193} }1
  {В}{ {\selectfont\char194} }1
  {Г}{ {\selectfont\char195} }1
  {Д}{ {\selectfont\char196} }1
  {Е}{ {\selectfont\char197} }1
  {Ё}{ {\"E} }1
  {Ж}{ {\selectfont\char198} }1
  {З}{ {\selectfont\char199} }1
  {И}{ {\selectfont\char200} }1
  {Й}{ {\selectfont\char201} }1
  {К}{ {\selectfont\char202} }1
  {Л}{ {\selectfont\char203} }1
  {М}{ {\selectfont\char204} }1
  {Н}{ {\selectfont\char205} }1
  {О}{ {\selectfont\char206} }1
  {П}{ {\selectfont\char207} }1
  {Р}{ {\selectfont\char208} }1
  {С}{ {\selectfont\char209} }1
  {Т}{ {\selectfont\char210} }1
  {У}{ {\selectfont\char211} }1
  {Ф}{ {\selectfont\char212} }1
  {Х}{ {\selectfont\char213} }1
  {Ц}{ {\selectfont\char214} }1
  {Ч}{ {\selectfont\char215} }1
  {Ш}{ {\selectfont\char216} }1
  {Щ}{ {\selectfont\char217} }1
  {Ъ}{ {\selectfont\char218} }1
  {Ы}{ {\selectfont\char219} }1
  {Ь}{ {\selectfont\char220} }1
  {Э}{ {\selectfont\char221} }1
  {Ю}{ {\selectfont\char222} }1
  {Я}{ {\selectfont\char223} }1
  {\{}{ { {\color{brackets}\{} } }1 % Цвет скобок {
  {\} }{ { {\color{brackets}\} } } }1 % Цвет скобок }
}

% НАЧАЛО ТИТУЛЬНОГО ЛИСТА
\begin{center}
  Санкт - Петербургский Политехнический Университет Петра Великого \\
  Институт компьютерных наук и кибербезопасности  \\
  Высшая школа технологий искусственного интеллекта\\
  \vspace{-15pt}
  \hdashrule[-2mm]{\textwidth}{0.5pt}{}
  \vspace*{15pt}
  \small{наименование организации - разработчика ТЗ на АС}\\
  \vspace{2mm}
\end{center}
  \begin{center}
    \begin{multicols}{2}
        \begin{flushleft}
            \small{УТВЕРЖДАЮ} \\
            \small{Руководитель} \\
            \vspace{0.3cm}
            \small{Курочкин Михаил Александрович} \\
            \vspace{0.5cm}
            \rule{4cm}{0.1mm} \\
            \small{Личная подпись} \\
            \vspace{0.5cm}
            \rule{4cm}{0.1mm} \\
            \small{Расшифровка подписи} \\
            \vspace{0.2cm}
            \small{Печать} \\
            \vspace{0.2cm}
            \small{Дата} \\
          \end{flushleft}
    
        \columnbreak
    
        \begin{flushleft}
            \small{УТВЕРЖДАЮ} \\
            \small{Разработчик (студент группы} \\
            \small{5130201/20102)} \\
            \vspace{0.3cm}
            \small{Тищенко Артём Андреевич} \\
            \vspace{0.5cm}
            \rule{4cm}{0.1mm} \\
            \small{Личная подпись} \\
            \vspace{0.5cm}
            \rule{4cm}{0.1mm} \\
            \small{Расшифровка подписи} \\
            \vspace{0.2cm}
            \small{Печать} \\
            \vspace{0.2cm}
            \small{Дата} \\
        \end{flushleft}
    \end{multicols}
    \end{center}


\begin{center}
   
  Приложение <<Словарь-КЧД>> \\
  \vspace{-15pt}
  \hdashrule[-2mm]{\textwidth}{0.5pt}{}
  \small{наименование АС} \\
  \vspace{0.5cm}
  \normalsize{
  Операции над красно-черными деревьями}\\
  \vspace{-15pt}
  \hdashrule[-2mm]{\textwidth}{0.5pt}{}
  \small{наименование объекта автоматизации} \\
  \vspace{0.5cm}
  
  Словарь-КЧД \\
  \vspace{-15pt}
  \hdashrule[-2mm]{\textwidth}{0.5pt}{}
  \small{краткое наименование АС} \\
  \vspace{0.7cm}
  
  \large{\textbf{Техническое задание}} \\
  \vspace{0.5cm}
  \small{На  }\rule{4cm}{0.1mm} \small{листах} \\
  \small{Действует с} \\
  \vspace{0.7cm}
\end{center}

\small{СОГЛАСОВАНО} \\
\small{Руководитель (должность, наименование} \\
\small{согласующей организации)} \\
\small{Курочкин Михаил Александрович, к.т.н., профессор} \\
  \rule{4cm}{0.1mm} \\
  \small{Личная подпись} \\
  \rule{4cm}{0.1mm} \\
  \small{Расшифровка подписи} \\
  \small{Печать} \\
  \small{Дата}
  \thispagestyle{empty}



\begin{center}
\small{Санкт-Петербург, 2024}
\end{center}

% КОНЕЦ ТИТУЛЬНОГО ЛИСТА

\newpage
\tableofcontents

\newpage
\section{Общее сведения}
\subsection{Полное наименование системы и ее условное обозначение}
Полное наименование системы: Приложение словарь на основе красно-черных деревьев <<Словарь-КЧД>>.

Краткое наименование системы: Словарь-КЧД.

\subsection{Номер договора (контракта)}
Отсутствует.

\subsection{Наименования организации-заказчика и организаций-участников работ}
Заказчиком системы является федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский политехнический университет Петра Великого»,  \\
Адрес заказчика: 195251 г. Санкт-Петербург, ул. Политехническая, д. 29. \\

Разработчиком системы является студент группы 5130201/20102 Тищенко Артём Андреевич.\\
Адрес разработчика: 195257 г. Санкт-Петербург, ул. Вавиловых, д. 10, к. 3.

\subsection{Перечень документов, на основании которых создается система}
Отсутствует.

\subsection{Плановые сроки начала и окончания работы по созданию системы}
Плановый срок начала работ по созданию Программы кодировая и декодирования случайной строки 
– 1 сентября 2024 года.\\
Плановый срок окончания работ по созданию Программы кодировая и декодирования случайной строки 
– 20 декабря 2024 года.

\subsection{Источники и порядок финансирования работ}
Инициативная работа.
Финансирование отсутствует.

\subsection{Порядок оформления и предъявления заказчику результатов работ по созданию системы}

При предъявлении результатов работ по созданию приложения Заказчику передаётся исходный код приложения и исполняемый файл приложения для операционной системы Windows.

\subsection{Перечень нормативно-технических документов, методических материалов, использованных при разработке ТЗ}

ГОСТ 34.602-89 «Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы».

\subsection{Определения, обозначения и сокращения}

\begin{table}[h!]
  \begin{tabularx}{\textwidth}{|c|X|X|}
  \cline{1-3}
  \textbf{№} & \textbf{Сокращение} & \textbf{Расшифровка} \\
  \cline{1-3}

  1 & ТЗ & Техническое задание \\
  \hline
  2 & ОС & Операционная система \\
  \hline
  3 & КЧД & Красно-чёрное дерево \\
  \hline
  \end{tabularx}
\end{table}




\newpage
\section{НАЗНАЧЕНИЕ И ЦЕЛИ СОЗДАНИЯ СИСТЕМЫ}

\subsection{Назначение системы}

Приложение <<Словарь-КЧД>> предназначено для автоматизации процесса управления словарём с использованием структуры данных на основе красно-чёрного дерева. Приложение выполняет следующие функции:

\begin{itemize}
    \item[$-$] добавление словарных записей;
    \item[$-$] удаление словарных записей;
    \item[$-$] поиск словарных записей;
    \item[$-$] вывод структуры красно-чёрного дерева в консоль.
\end{itemize}

Приложение <<Словарь-КЧД>> рассчитано на использование в учебных или демонстрационных целях для освоения алгоритмов работы с красно-чёрными деревьями.

\subsection{Цели создания системы}
Основными целями приложения <<Словарь-КЧД>> являются:

\begin{itemize}
    \item[$-$] Повышение эффективности работы со словарными данными путём автоматизации операций добавления, удаления и поиска слов;
    \item[$-$] Обеспечение наглядного представления структуры данных красно-чёрного дерева в консольном режиме, для упрощения понимания и анализа структуры дерева;
    \item[$-$] Создание демонстрационной платформы для изучения алгоритмов работы с красно-чёрными деревьями.
\end{itemize}


Для достижения целей система выполняет следующие задачи:
\begin{itemize}
    \item[$-$] Добавление, удаление, поиск словарных пар;
    \item[$-$] Вывод структуры красно-чёрного дерева в консоль.
\end{itemize}


\newpage
\section{ХАРАКТЕРИСТИКА ОБЪЕКТА АВТОМАТИЗАЦИИ}

Объектом автоматизации являются операции, выполняемые над красно-черными деревьями:
\begin{itemize}
  \item[$-$] Добавление узла, содержащего словарную запись;
  \item[$-$] Поиск узла по заданной словарной записи;
  \item[$-$] Удаление узла по заданной словарной записи; 
  \item[$-$] Представление структуры красно-чёрного дерева и данных, которые в нём содержатся, в текстовом виде.  
\end{itemize}


\newpage
\section{ТРЕБОВАНИЯ К СИСТЕМЕ}
\subsection{Требования к системе в целом}
\subsubsection{Требования к структуре и функционированию системы}
\paragraph{Перечень подсистем, их назначение и основные характеристики}

В состав системы <<Словарь-КЧД>> входят следующие подсистемы:
\begin{itemize}  
    \item[$-$] Подсистема управления деревом: отвечает за работу с красно-чёрным деревом, автоматизируя процессы балансировки, вставки и удаления узлов, что позволяет поддерживать корректную структуру дерева при любых изменениях.
  
    \item[$-$] Подсистема поиска: предназначена для поиска указанных элементов в красно-чёрном дереве.

    \item[$-$] Подсистема вывода: предназначена для вывода текущей структуры дерева в консоль, что помогает пользователям анализировать структуру данных в реальном времени.
  
    \item[$-$] Подсистема взаимодействия с пользователем: реализует интерфейс команд для работы с красно-чёрным деревом, предоставляя пользователю возможность выбора операций через консольное меню.
\end{itemize}
  
Каждая подсистема ориентирована на улучшение работы с динамическими структурами данных и наглядное представление ключевых алгоритмов работы с красно-чёрными деревьями.

\paragraph{Требования к способам и средствам связи для информационного обмена между
компонентами системы}

Требования не предъявляются.

\paragraph{Требования к характеристикам взаимосвязей создаваемой системы со смежными
системами}

Требования не предъявляются.

\paragraph{Требования к режимам функционирования системы}
Требования не предъявляются
\paragraph{Требования по диагностированию системы}

Требования не предъявляются.

\paragraph{Перспективы развития, модернизации системы}

Требования не предъявляются.

\subsubsection{Требования к численности и квалификации персонала системы}

Для эксплуатации приложения <<Словарь-КЧД>> определены следующие роли:

\begin{itemize}
  \item[$-$] Пользователь.
\end{itemize}

Пользователи системы должны иметь опыт работы с персональным компьютером на базе
операционных систем Microsoft Windows на уровне квалифицированного пользователя и
свободно осуществлять базовые операции в стандартных Windows.

\subsubsection{Показатели назначения}

Приложение <<Словарь-КЧД>> должно обеспечивать следующие количественные
показатели, которые характеризуют степень соответствия
назначению:

\begin{itemize}
  \item[$-$] Время добавления словарной записи должно непревышать 1 секунды при размере словаря в менее чем 10000 записей;
  \item[$-$] Время удаления словарной записи должно непревышать 1 секунды при размере словаря в менее чем 10000 записей;
  \item[$-$] Время поиска словарной записи должно непревышать 1 секунды при размере словаря в менее чем 10000 записей.
\end{itemize}

\subsubsection{Требования к надежности}

Надежность обеспечивается:

\begin{itemize}
    \item[$-$] лицензионным программным обеспечиванием Microsoft Windows 10 и лицензионной
    средой разработки Microsoft Visual Studio 2019;
    \item[$-$] корректным математическим обеспечением.
\end{itemize}

\subsubsection{Требования к безопасности}

Требования не предъявляются.

\subsubsection{Требования к эргономике и технической эстетике}

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

\subsubsection{Требования к транспортабельности для подвижных АС}
Требования не предъявляются.

\subsubsection{Требования к эксплуатации, техническому обслуживанию, ремонту и хранению
компонентов системы}

Требования не предъявляются.

\subsubsection{Требования к защите информации от несанкционированного доступа}

Для защиты информацией от несанкционированного доступа необходимо перед запуском приложения <<Словарь-КЧД>> воспользоваться программами для обнаружения вредоносных объектов. 

\subsubsection{Требования по сохранности информации при авариях}

Требования не предъявляются.

\subsubsection{Требования к защите от влияния внешних воздействий}

Защита от влияния внешних воздействий должна обеспечиваться средствами программно
технического комплекса Заказчика. 

\subsubsection{Требования к патентной чистоте}
Требования не предъявляются.

\subsubsection{Требования по стандартизации и унификации}
Требования не предъявляются.

\subsubsection{Дополнительные требования}

Требования не предъявляются.

\subsection{Требования к функциям (задачам), выполняемым системой}
В состав системы <<Словарь-КЧД>> входят следующие подсистемы с функциональными требованиями:

\begin{itemize}
  \item \textbf{Подсистема управления деревом}
    \begin{itemize}
      \item Функции: балансировка, вставка, удаление узлов в красно-чёрном дереве.
      \item Временной регламент: операции вставки и удаления должны выполняться за $O(\log n)$ времени.
      \item Качество реализации: система обязана корректно поддерживать структуру дерева, не допуская нарушения свойств красно-чёрного дерева при любых изменениях.
      \item Критерии отказа: некорректная балансировка дерева, невозможность вставки/удаления узла при верных входных данных.
    \end{itemize}

  \item \textbf{Подсистема поиска}
    \begin{itemize}
      \item Функции: поиск элементов по ключу в красно-чёрном дереве.
      \item Временной регламент: поиск должен выполняться за $O(\log n)$ времени.
      \item Качество реализации: система должна точно возвращать ссылку на узел или результат о его отсутствии.
      \item Критерии отказа: неверный результат поиска при корректных данных.
    \end{itemize}

  \item \textbf{Подсистема вывода}
    \begin{itemize}
      \item Функции: вывод структуры дерева в консоль.
      \item Временной регламент: выполнение функции вывода — не более $O(n)$ времени.
      \item Качество реализации: данные должны отображаться в удобном для анализа формате.
      \item Критерии отказа: некорректное отображение структуры дерева.
    \end{itemize}

  \item \textbf{Подсистема взаимодействия с пользователем}
    \begin{itemize}
      \item Функции: реализация интерфейса команд для управления красно-чёрным деревом.
      \item Временной регламент: реакции на команды пользователя должны происходить в реальном времени (не более 1 секунды).
      \item Качество реализации: интерфейс должен быть интуитивным, а сообщения об ошибках — информативными.
      \item Критерии отказа: отсутствие отклика на команды пользователя или некорректное выполнение команд.
    \end{itemize}

\end{itemize}

\subsection{Требования к видам обеспечения}

\subsubsection{Требования к математическому обеспечению системы}

При реализации системы используются следующие математически корректные алгоритмы для красно-черного дерева:
\begin{itemize}
    \item[$-$] алгоритмы балансировки дерева: левый поворот, правый поворот, перекрашивание узла;
    \item[$-$] вставка узла в дерево;
    \item[$-$] удаление узла из дерева;
    \item[$-$] поиск узла в дереве;
    \item[$-$] обход всех узлов дерева.
\end{itemize}

\subsubsection{Требования к информационному обеспечению системы}

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

\subsubsection{Требования к лингвистическому обеспечению системы}

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

\subsubsection{Требования к программному обеспечению системы}

При разработке должна использоватеься лицензионная версия Microsoft Visual Studio 2019.
Базовой программной платформой должна являться лицензированная операционная система Microsoft Windows 10.

\subsubsection{Требования к техническому обеспечению}

Требование к минимальной технической характеристике персонального компьютера для запуска приложения <<Словарь-КЧД>>:

\begin{itemize}
  \item[$-$] Процессор с тактовой частотой минимум 1,2 ГГц;
  \item[$-$] Объем оперативной памяти минимум 256 Мб;
  \item[$-$] Свободное место на диске – 100 Мб;
\end{itemize}

\subsubsection{Требования к метрологическому обеспечению}

Требования не предъявляются.

\subsubsection{Требования к организационному обеспечению}
Требования не предъявляются.

\subsubsection{Требования к методическому обеспечению}
Требования не предъявляются.


\newpage
\section{СОСТАВ И СОДЕРЖАНИЕ РАБОТ ПО СОЗДАНИЮ (РАЗВИТИЮ) СИСТЕМЫ}
Календарный план работ:


\begin{table}[h!]
    \centering
    \footnotesize
    \begin{tabularx}{\textwidth}{|X|X|X|X|X|}
    \hline
    \textbf{Название этапа } & \textbf{Сроки
    выполнения} & \textbf{Содержание работ} & \textbf{Результат}\\
    \hline
    Проектирование приложения & 01.09.2024 - 01.10.2024 & Необходимо провести декомпозицию поставленной задачи и выделить подсистемы приложения, изучить математическое описание алгоритмов, используемых для реализации красно-чёрного дерева. & Список подзадач и
    подсистем приложения <<Словарь-КЧД>>, в котором прописан функционал
    каждой из подсистем. Математическое описание алгоритмов, их псевдокод. Документация с описанием входов и выходов алгоритмов. \\
    \hline
    Разработка & 02.10.2024 - 01.11.2024 & Реализовать алгоритмы, необходимые в функционировании каждой подсистемы. Реализовать функции приложения <<Словарь-КЧД>>, прописанные в настоящем техническом задании.  & Реализованы спроектированные на этапе проектирования подсистемы и связи между ними. Написан исходный код программы. \\
    \hline
    Тестирование & 02.11.2024 - 16.11.2024 &  Тестирование и исправление ошибок приложения <<Словарь-КЧД>>, в том числе на оборудовании Заказчика. Составление и запуск функциональных тестов. & Составлен
    протокол испытаний и тестов для приложения, а также список замечаний и ошибок. Ошибки исправлены, приложение работает стабильно. \\
    \hline
    Сдача приложения & 17.11.2024 - 20.12.2024 &  Передача Заказчику исходного кода и исполняемого файла приложения <<Словарь-КЧД>>, а также инструкции по использованию. & Подписанный Заказчиком и Разработчиком акт приёмки приложения. Исходный код и исполняемый файл переданы Заказчику. Программа работает на оборудовании заказчика. \\
    \hline
    \end{tabularx}
\end{table}
\newpage


\section{ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ СИСТЕМЫ}

\subsection{Виды, состав, объем и методы испытаний системы}

Разработчик подгатавливает функциональные тесты для проверки работоспособности приложения. Данные тесты утверждаются Разработчиком и Заказчиком. Приложение устанавливается на ПК базовой комплектации с лицензионным ПО и гарантийным обслуживанием.

Каждый тест включают в себя проверку работоспособности функций приложения: в словарь производится ввод 30 слов на русском языке, применяются методы поиска, удаления по 5 слов, вывод результата на экран 1 раз.

Каждый тест выполняется 10 раз с разными наборами слов. Время выполнения теста в целом высчитывается как среднее арифметическое времени выполнения каждого теста на каждом запуске. Время измеряется тактовым генератором.

\subsection{Общие требования к приемке работ по стадиям}

На стадии тестирования должно быть предоставлено помещение и ПК базовой
комплектации с установленным Visual Studio 2019 и компилятором MSVC (Microsoft Visual C++).

На стадии тестирования приложение должно пройти набор функциональных тестов, разработанных совместно с Заказчиком.\\

На стадии сдачи проекта, в случае успешного прохождения утвержденной
системы тестов, составляется двусторонний акт приёмки системы Заказчиком.

Заказчику передаются:
\begin{itemize}
    \item[$-$] Исходный код приложения;
    \item[$-$] Исполняемый файл приложения для ОС Windows; 
    \item[$-$] Инструкция по использованию.
\end{itemize}

\subsection{Статус приемочной комиссии}

Статус приемочной комиссии определяется Заказчиком до проведения испытаний.

\newpage
\section{ТРЕБОВАНИЯ К СОСТАВУ И СОДЕРЖАНИЮ РАБОТ ПО ПОДГОТОВКЕ ОБЪЕКТА
АВТОМАТИЗАЦИИ К ВВОДУ СИСТЕМЫ В ДЕЙСТВИЕ}

Подготовить рабочее место в соответствии с требованиями, установленными в разделе 4 технического задания. Загрузить исполняемый файл на компьютер с установленной ОС Windows, удовлетворяющий минимальным системным требованиям, описанным в п. 4.1.6. Исполняемый файл должен запускаться без дополнительной настройки. Для компиляции приложения из исходного кода должен использоваться Visual Studio 2019 и компилятор MSVC (Microsoft Visual C++).

Перед началом работы с приложением пользователь должен изучить инструкцию пользователя.

\newpage
\section{ТРЕБОВАНИЯ К ДОКУМЕНТИРОВАНИЮ}
Заказчику вместе с приложением должна быть предоставлена инструкция по использованию приложения.

\newpage
\section{ИСТОЧНИКИ РАЗРАБОТКИ}
Данное техническое задание разработано на основе ГОСТ 34.602–89 «Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы».


\end{document}