685 lines
40 KiB
TeX
685 lines
40 KiB
TeX
\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 10>>, загрузочный модуль приложения, руководство оператора, написанное в соответствии с ГОСТ 19.505–79, набор функциональных тестов и программа испытаний.
|
||
|
||
\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
|
||
3 & ПК & Персональный компьютер \\
|
||
\hline
|
||
\end{tabularx}
|
||
\end{table}
|
||
|
||
|
||
|
||
|
||
\newpage
|
||
\section{НАЗНАЧЕНИЕ И ЦЕЛИ СОЗДАНИЯ СИСТЕМЫ}
|
||
|
||
\subsection{Назначение системы}
|
||
|
||
Приложение <<Словарь-КЧД>> предназначено для автоматизации процесса управления данными в красно-чёрном дереве.
|
||
|
||
\subsection{Цели создания системы}
|
||
Целью приложения <<Словарь-КЧД>> является сокращение времени управления данными в красно-чёрном дереве.
|
||
|
||
|
||
\newpage
|
||
\section{ХАРАКТЕРИСТИКА ОБЪЕКТА АВТОМАТИЗАЦИИ}
|
||
|
||
Объектом автоматизации является процесс управления данными в красно-черном дереве. Под данными подразумеваются словарные пары, состояющие из двух строк длиной от 1 до 100 в кодировке ASCII. Всего дерево может содержать от 0 до 10000 словарных записей.
|
||
|
||
|
||
\newpage
|
||
\section{ТРЕБОВАНИЯ К СИСТЕМЕ}
|
||
\subsection{Требования к системе в целом}
|
||
\subsubsection{Требования к структуре и функционированию системы}
|
||
\paragraph{Перечень подсистем, их назначение и основные характеристики}
|
||
|
||
Аппаратная часть состоит из персонального компьютера базовой комплектации, находящегося на гарантийном обслуживании.
|
||
Программная часть состоит из приложения <<Словарь-КЧД>> и лицензионной ОС Windows 10.
|
||
|
||
Для запуска приложения <<Словарь-КЧД>> ПК должен обладать следующими техническими характеристиками:
|
||
|
||
\begin{itemize}
|
||
\item[$-$] Процессор с тактовой частотой минимум 1,2 ГГц;
|
||
\item[$-$] Объем оперативной памяти минимум 256 Мб;
|
||
\item[$-$] Свободное место на диске минимум 100 Мб.
|
||
\end{itemize}
|
||
|
||
|
||
\paragraph{Требования к способам и средствам связи для информационного обмена между
|
||
компонентами системы}
|
||
|
||
Требования не предъявляются.
|
||
|
||
\paragraph{Требования к характеристикам взаимосвязей создаваемой системы со смежными
|
||
системами}
|
||
|
||
Требования не предъявляются.
|
||
|
||
\paragraph{Требования к режимам функционирования системы}
|
||
Приложение должно иметь активный режим функционирования и использоваться не более 2-х часов в день, 7 дней в неделю.
|
||
|
||
\paragraph{Требования по диагностированию системы}
|
||
|
||
Требования не предъявляются.
|
||
|
||
\paragraph{Перспективы развития, модернизации системы}
|
||
|
||
Требования не предъявляются.
|
||
|
||
\subsubsection{Требования к численности и квалификации персонала системы}
|
||
|
||
Для эксплуатации приложения <<Словарь-КЧД>> достаточно одного человека. Пользователи системы должны иметь опыт работы с персональным компьютером на базе операционных систем Microsoft Windows и свободно осуществлять базовые операции в стандартных Windows. Перед началом работы пользователь должен ознакомиться с руководством оператора, написанным в соответсвии с ГОСТ 19.505–79.
|
||
|
||
\subsubsection{Показатели назначения}
|
||
|
||
Приложение <<Словарь-КЧД>> должно обеспечивать следующие количественные
|
||
показатели, которые характеризуют степень соответствия
|
||
назначению:
|
||
|
||
\begin{itemize}
|
||
\item[$-$] Время добавления словарной записи в КЧД не должно превышать 1 секунду, если в словаре меньше 10000 записей;
|
||
\item[$-$] Время удаления словарной записи из КЧД не должно превышать 1 секунду, если в словаре меньше 10000 записей;
|
||
\item[$-$] Время поиска словарной записи в КЧД не должно превышать 1 секунду, если в словаре меньше 10000 записей.
|
||
\end{itemize}
|
||
|
||
\subsubsection{Требования к надежности}
|
||
|
||
Надежность системы <<Словарь-КЧД>> обеспечивается:
|
||
\begin{itemize}
|
||
\item[$-$] аппаратным обеспечением, находящимся на гарантийном обслуживании;
|
||
\item[$-$] лицензионной ОС <<Windows 10>>;
|
||
\item[$-$] математически корректным обеспечением;
|
||
\item[$-$] соответствием процесса разработки приложения ГОСТ Р ИСО/МЭК 25010-2015 «Требования и оценка качества систем и программного обеспечения».
|
||
\end{itemize}
|
||
|
||
|
||
\subsubsection{Требования к безопасности}
|
||
|
||
Факторы, оказывающие вредные воздействия на здоровье со стороны всех элементов системы не должны превышать действующих норм СанПиН 2.2.2./2.4.1340-03 «Гигиенические требования к персональным электронно-вычислительным машинам и организации
|
||
работы»(п.10, п.11).
|
||
Все внешние элементы технических средств системы, находящиеся под напряжением,
|
||
должны соответствовать ГОСТ 12.1.030-81 «Система стандартов безопасности труда»(п.7).
|
||
|
||
\subsubsection{Требования к эргономике и технической эстетике}
|
||
|
||
Рабочее место должно быть удообным, оборудовано стулом и столом, соответствовать ГОСТ Р 50923-96 <<Дисплеи. Рабочее место оператора. Общие эргономические требования и требования к производственной среде. Методы измерения>>.
|
||
|
||
\subsubsection{Требования к транспортабельности для подвижных АС}
|
||
Требования не предъявляются.
|
||
|
||
\subsubsection{Требования к эксплуатации, техническому обслуживанию, ремонту и хранению
|
||
компонентов системы}
|
||
|
||
Требования не предъявляются.
|
||
|
||
\subsubsection{Требования к защите информации от несанкционированного доступа}
|
||
|
||
Требования не предъявляются.
|
||
|
||
\subsubsection{Требования по сохранности информации при авариях}
|
||
|
||
Требования не предъявляются.
|
||
|
||
\subsubsection{Требования к защите от влияния внешних воздействий}
|
||
|
||
Требования не предъявляются.
|
||
|
||
\subsubsection{Требования к патентной чистоте}
|
||
Требования не предъявляются.
|
||
|
||
\subsubsection{Требования по стандартизации и унификации}
|
||
Требования не предъявляются.
|
||
|
||
\subsubsection{Дополнительные требования}
|
||
|
||
Требования не предъявляются.
|
||
|
||
\subsection{Требования к функциям (задачам), выполняемым системой}
|
||
Система управления данными <<Словарь-КЧД>> должна выполнять следущие задачи:
|
||
\begin{itemize}
|
||
\item[$-$] Создание и поддержание структуры КЧД;
|
||
|
||
\item[$-$] Добавление записей в КЧД;
|
||
|
||
\item[$-$] Удаление записей из КЧД;
|
||
|
||
\item[$-$] Поиск и просмотр записей в КЧД;
|
||
|
||
\item[$-$] Сохранение данных и структуры КЧД на диск;
|
||
|
||
\item[$-$] Чтение данных и структуры КЧД с диска;
|
||
|
||
\item[$-$] Вывод структуры КЧД в текстовом виде на экран.
|
||
\end{itemize}
|
||
|
||
Для выполнения поставленных задач должны быть реализованы следующие функции:
|
||
\begin{itemize}
|
||
\item Функция для создания структуры КЧД.
|
||
\item Функция для инициализации структуры КЧД с заданными параметрами.
|
||
\item Функция для добавления новой записи в структуру КЧД.
|
||
\item Функция для балансировки КЧД после добавления записи.
|
||
\item Функция для удаления записи из структуры КЧД.
|
||
\item Функция для балансировки КЧД после удаления записи.
|
||
\item Функция для поиска записи в КЧД.
|
||
\item Функция для отображения записей структуры КЧД в текстовом виде.
|
||
\item Функция для сохранения структуры и данных КЧД на диск.
|
||
\item Функция для загрузки структуры и данных КЧД с диска.
|
||
\item Функция для вывода структуры КЧД на экран в текстовом формате.
|
||
\item Функция для проверки целостности структуры КЧД при загрузке.
|
||
\item Функция для контроля и обработки входных данных от пользовтеля.
|
||
\end{itemize}
|
||
|
||
|
||
\subsection{Требования к видам обеспечения}
|
||
|
||
\subsubsection{Требования к математическому обеспечению системы}
|
||
|
||
При реализации системы <<Словарь-КЧД>> используются математически корректные алгоритмы.
|
||
|
||
\subsubsection{Требования к информационному обеспечению системы}
|
||
|
||
Структура данных:
|
||
\begin{itemize}
|
||
\item Класс \textbf{RBTree} (наследуется от \texttt{BinarySearchTree}):
|
||
\begin{itemize}
|
||
\item Методы:
|
||
\begin{itemize}
|
||
\item \texttt{void insert(std::string key, std::string value)}: Метод для вставки узла с заданными ключом и значением в дерево, с последующей балансировкой.
|
||
\item \texttt{void remove(std::string key)}: Метод для удаления узла с заданным ключом из дерева, с последующей балансировкой.
|
||
\end{itemize}
|
||
\end{itemize}
|
||
|
||
\item Класс \textbf{BinarySearchTree}:
|
||
\begin{itemize}
|
||
\item Атрибуты:
|
||
\begin{itemize}
|
||
\item \texttt{Node* root}: Указатель на корневой узел дерева.
|
||
\end{itemize}
|
||
\item Методы:
|
||
\begin{itemize}
|
||
\item \texttt{Node* search(Node* node, std::string key)}: Метод для поиска узла с заданным ключом, начиная с узла \texttt{node}.
|
||
\item \texttt{Node* getMin(Node* node)}: Метод для получения узла с минимальным ключом, начиная с узла \texttt{node}.
|
||
\item \texttt{Node* getMax(Node* node)}: Метод для получения узла с максимальным ключом, начиная с узла \texttt{node}.
|
||
\item \texttt{void removeTree()}: Метод для удаления всего дерева.
|
||
\item \texttt{void printTree()}: Метод для вывода дерева.
|
||
\item \texttt{Node* insert(std::string key, std::string value)}: Метод для вставки нового узла с заданными ключом и значением.
|
||
\item \texttt{Node* remove(std::string key, Node* \&saveChildPtr)}: Метод для удаления узла с заданным ключом, сохраняя указатель на узел потомка.
|
||
\end{itemize}
|
||
\end{itemize}
|
||
|
||
\item Класс \textbf{Node}:
|
||
\begin{itemize}
|
||
\item Атрибуты:
|
||
\begin{itemize}
|
||
\item \texttt{std::string key}: Ключ узла.
|
||
\item \texttt{std::string value}: Значение узла.
|
||
\item \texttt{bool color}: Цвет узла (красный или черный).
|
||
\item \texttt{Node* left}: Указатель на левый дочерний узел.
|
||
\item \texttt{Node* right}: Указатель на правый дочерний узел.
|
||
\item \texttt{Node* parent}: Указатель на родительский узел.
|
||
\end{itemize}
|
||
\item Методы:
|
||
\begin{itemize}
|
||
\item \texttt{void createLeafs()}: Метод для создания дочерних узлов-листьев.
|
||
\item \texttt{Node* grandparent() const}: Метод для получения указателя на дедушку узла.
|
||
\item \texttt{Node* uncle() const}: Метод для получения указателя на дядю узла.
|
||
\item \texttt{Node* brother() const}: Метод для получения указателя на брата узла.
|
||
\item \texttt{std::string toString() const}: Метод для преобразования узла в строку, включающую ключ, значение и цвет.
|
||
\item \texttt{bool isLeaf()}: Метод для проверки, является ли узел листом.
|
||
\end{itemize}
|
||
\end{itemize}
|
||
|
||
\item Типы данных:
|
||
\begin{itemize}
|
||
\item \texttt{std::string}: Строковый тип данных, используемый для хранения ключей и значений узлов.
|
||
\item \texttt{bool}: Логический тип данных, применяемый для указания цвета узла в красно-черном дереве (красный или черный).
|
||
\item \texttt{int}: Целочисленный тип данных для хранения значений, таких как счетчики или индексы.
|
||
\end{itemize}
|
||
\end{itemize}
|
||
|
||
|
||
\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}{|c|X|X|X|X|}
|
||
\hline
|
||
\textbf{Этап} & \textbf{Название этапа} & \textbf{Сроки
|
||
выполнения} & \textbf{Содержание работ} & \textbf{Результат}\\
|
||
\hline
|
||
1 & Проектирование приложения & 01.09.2024 - 20.09.2024 & Необходимо провести декомпозицию поставленной задачи и выделить подсистемы приложения, изучить математическое описание алгоритмов, используемых для реализации красно-чёрного дерева. & Список подзадач и
|
||
подсистем приложения <<Словарь-КЧД>>, в котором прописан функционал
|
||
каждой из подсистем. Математическое описание алгоритмов. \\
|
||
\hline
|
||
2 & Разработка приложения & 21.09.2024 - 20.10.2024 & Реализовать алгоритмы, необходимые в функционировании каждой подсистемы. Реализовать функции приложения <<Словарь-КЧД>>, прописанные в настоящем техническом задании. & Реализованы спроектированные на этапе проектирования подсистемы и связи между ними. Реализованы функции приложения <<Словарь-КЧД>>. \\
|
||
\hline
|
||
3 & Разработка функциональных тестов & 21.10.2024 - 01.11.2024 & Разработка тестов, направленных на поиск ошибок и несоответствия функционала требованиям. & Функциональные тесты и программа испытаний, утверждённые Разработчиком и Заказчиком. \\
|
||
\hline
|
||
4 & Тестирование и отладка приложения & 02.11.2024 - 16.11.2024 & Применение разработанных тестов, поиск и исправление ошибок. & Составлен протокол тестирования. Ошибки исправлены. \\
|
||
\hline
|
||
5 & Написание руководства оператора & 17.11.2024 - 01.12.2024 & Написание руководства оператора в соответствии с ГОСТ 19.505–79. & Руководство оператора, написанное в соответствии с ГОСТ 19.505–79. \\
|
||
\hline
|
||
\end{tabularx}
|
||
\end{table}
|
||
|
||
\newpage
|
||
\begin{table}[h!]
|
||
\centering
|
||
\footnotesize
|
||
\begin{tabularx}{\textwidth}{|c|X|X|X|X|}
|
||
\hline
|
||
\textbf{Этап} & \textbf{Название этапа} & \textbf{Сроки
|
||
выполнения} & \textbf{Содержание работ} & \textbf{Результат}\\
|
||
\hline
|
||
6 & Сдача приложения & 02.12.2024 - 20.12.2024 &
|
||
Заказчику передаётся: находящийся на гарантийном обслуживании ПК базовой комплектации, с установленной лицензионной ОС <<Windows 10>>, загрузочный модуль приложения, руководство оператора, написанное в соответствии с ГОСТ 19.505–79, набор функциональных тестов и программа испытаний.
|
||
& Подписанный Заказчиком и Разработчиком акт приёмки-сдачи приложения. \\
|
||
\hline
|
||
\end{tabularx}
|
||
\end{table}
|
||
|
||
\newpage
|
||
\section{ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ СИСТЕМЫ}
|
||
|
||
\subsection{Виды, состав, объем и методы испытаний системы}
|
||
|
||
Виды, состав, объем, и методы испытаний подсистемы должны быть изложены в программе
|
||
и методике испытаний Словарь-КЧД, разрабатываемой в составе рабочей документации.
|
||
|
||
\subsection{Общие требования к приемке работ по стадиям}
|
||
|
||
Во время приёмки работ Заказчику передаётся находящийся на гарантийном обслуживании ПК базовой комплектации, с установленной лицензионной ОС <<Windows 10>>, загрузочный модуль приложения, руководство оператора, написанное в соответствии с ГОСТ 19.505–79, набор функциональных тестов и программа испытаний.
|
||
|
||
|
||
\subsection{Статус приемочной комиссии}
|
||
|
||
Статус приемочной комиссии определяется Заказчиком до проведения испытаний.
|
||
|
||
\newpage
|
||
\section{ТРЕБОВАНИЯ К СОСТАВУ И СОДЕРЖАНИЮ РАБОТ ПО ПОДГОТОВКЕ ОБЪЕКТА
|
||
АВТОМАТИЗАЦИИ К ВВОДУ СИСТЕМЫ В ДЕЙСТВИЕ}
|
||
|
||
Подготовить рабочее место в соответствии с требованиями, установленными в разделе 4 технического задания. Загрузить загрузочный модуль на ПК базовой комплектации на гарантийном обслуживании с установленной лицензионной ОС Windows. Запустить загрузочный модуль и подождать около 5 секунд до полной загрузки приложения.
|
||
|
||
Перед началом работы с приложенем пользователь должен ознакомиться с руководством оператора, написанным в соответсвии с ГОСТ 19.505–79.
|
||
|
||
\newpage
|
||
\section{ТРЕБОВАНИЯ К ДОКУМЕНТИРОВАНИЮ}
|
||
Руководство оператора, предъявляемое Заказчику вместе с приложением, должно быть
|
||
написано в соответсвии с ГОСТ 19.505–79 «Единая система программной документации.
|
||
Руководство оператора. Требования к содержанию и оформлению».
|
||
|
||
\newpage
|
||
\section{ИСТОЧНИКИ РАЗРАБОТКИ}
|
||
Данное техническое задание разработано на основе ГОСТ 34.602–89 «Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы».
|
||
|
||
|
||
\end{document} |