- •Проведение испытаний программного комплекса «алгоритм кнута–морриса–пратта»
- •Реферат
- •Содержание
- •Перечень сокращений
- •Введение
- •1 Программный комплекс «алгоритм кнута–морриса–пратта»
- •1.1 Описание предметной области
- •1.2 Обоснование выбранных технологий
- •1.2.1 Выбор языка программирования
- •1.2.2 Выбор фреймворка и среды разработки
- •1.2.3 Выбор субд
- •1.2.4 Механизмы безопасности
- •2 Документация программы «кмп-поиск»
- •2.1 Задание по безопасности
- •2.2 Руководство пользователя
- •2.3 Руководство программиста
- •2.4 Программа и методика испытаний
- •3 Проведение испытаний программного комплекса «кмп-поиск»
- •3.1 Оценка технического задания
- •3.2 Оценка задания по безопасности
- •3.3 Оценка руководства пользователя
- •3.4 Оценка руководства программиста
- •3.5 Оценка программы и методики испытаний
- •3.6 Проведение тестирование программного комплекса
- •Заключение
- •Список используемых источников
- •Приложение а (обязательное) Акт о результатах приемочных испытаний (шаблон)
- •Приложение б (обязательное) Акт о результатах приемочных испытаний
1 Программный комплекс «алгоритм кнута–морриса–пратта»
1.1 Описание предметной области
Алгоритм
Кнута–Морриса–Пратта (КМП) – классический
алгоритм поиска подстроки в строке,
основанный на предварительном вычислении
префикс-функции для шаблона поиска. В
отличие от наивного алгоритма с временной
сложностью
,
алгоритм КМП обеспечивает линейную
сложность
,
где
–
длина исходной строки, а
–
длина искомой подстроки. Это делает его
эффективным инструментом для обработки
больших текстовых массивов [2].
Разработанная программа «КМП-ПОИСК» предназначена для демонстрации и практического применения алгоритма. Основная целевая аудитория – студенты, преподаватели и исследователи, работающие с алгоритмами обработки строк. Программа функционирует в однопользовательском режиме под управлением операционной системы Windows 10/11 (64-bit) и реализована в виде Windows Forms-приложения на языке C# с использованием платформы .NET 6.0 [3, 4].
Юридически и организационно разработка выполнена в рамках курсовой работы по дисциплине «Проектирование защищённых телекоммуникационных систем» кафедры КИБЭВС ТУСУР, студентом группы 731-2 Гельгинбергом Алексеем Владиславовичем, под руководством преподавателя Деркач Е.А.
Основные функции программы:
ввод исходной строки и подстроки через графический интерфейс;
выполнение поиска методом КМП с выделением найденной подстроки цветом;
вывод позиции первого вхождения или сообщения об отсутствии совпадений;
регистрация и авторизация пользователей с хранением учётных данных в БД;
очистка полей ввода и завершение сеанса.
1.2 Обоснование выбранных технологий
1.2.1 Выбор языка программирования
Разработка программы осуществлялась на языке C#. C# является строго типизированным объектно-ориентированным языком, что снижает вероятность ошибок в сложном коде и упрощает сопровождение. Также, язык обладает встроенной автоматической сборкой мусора, что исключает утечки памяти, типичные для языков без управляемой памяти [3].
В тоже время богатая стандартная библиотека .NET предоставляет готовые средства для работы со строками, коллекциями, шифрованием и базами данных [4].
1.2.2 Выбор фреймворка и среды разработки
В качестве GUI-фреймворка выбран Windows Forms (.NET 6.0). Windows Forms предоставляет простой и привычный инструментарий для создания настольных приложений под Windows, что соответствует требованиям ТЗ. Платформа .NET 6.0 является кроссплатформенной LTS-версией с длительным сроком поддержки. Существенную роль сыграл имеющийся опыт работы со средой разработки Visual Studio позволил сократить время на освоение инструментов и сосредоточиться на реализации алгоритма [4].
1.2.3 Выбор субд
В качестве встраиваемой системы управления базами данных выбран SQLite. Во-первых, SQLite не требует установки отдельного серверного компонента – база данных хранится в одном файле, что упрощает развёртывание программы. Во-вторых, SQLite полностью интегрируется с .NET через официальный пакет Microsoft.Data.Sqlite. В-третьих, для однопользовательского приложения с небольшим объёмом данных: учётные записи, история поиска SQLite является оптимальным выбором по соотношению простоты и функциональности [5].
