Вкр. ВКР_Мехаев_И. Анализ предметной области и постановка задачи 8 1 Анализ предметной области 8 1 Органы дознания умвд россии по Вологод
Скачать 4.27 Mb.
|
4 Тестирование и внедрение4.1 ТестированиеТестирование является важной составляющей разработки программного обеспечения. Процесс тестирования может быть автоматизирован так, что каждый раз, когда нужно что-то проверить, вызывается код, который сделает это самостоятельно. Код, который проверяет, что результат совпадает с тем, что планировалось, называется тестом, а процесс создания тестов и их последующего использования - автоматизированным тестированием. Разработка через тестирование (TDD) и разработка через поведение (BDD) - это подходы разработки программного обеспечения, в рамках которых поведение части кода описывается в виде набора сценариев или тестов ДО написания фактического кода и только затем создается реализация. Yii 2 официально поддерживает интеграцию с фреймворком для тестирования Codeception, который позволяет вам проводить следующие типы тестов: Модульное тестирование - проверяет что отдельный модуль кода работает верно; Функциональное тестирование - проверяет пользовательские сценарии через эмуляцию браузера; Приёмочное тестирование - проверяет пользовательские сценарии в браузере. Codeception устанавливается при помощи команды «composer require "codeception/codeception=2.1.*"» В проекте появится папка tests, хранящая настройки тестирования и некоторые заготовленные тесты. Также появится файл codeception.yml в котором необходимо указать используемую базу данных, имя пользователя, пароль и дамп базы данных. Теперь необходимо получить дамп базы. Для этого воспользуемся инструментом PhpMyAdmin и произведем экспорт базы данных в формате sql. В результате будет поучен файл, содержащий все команды, необходимые для создания точно такой же базы данных, с которой экспортировался дамп. В codeception, тест-кейсы оформляются как классы. Чтобы работать с объектами Yii2 нужно создать класс, унаследованный от yii\codeception\TestCase. Имя класса и имя файла должны заканчиваться на Test. После создания всех необходимых тестов, используется команда «codecept run», которая начнет проведение всех доступных тестов. В результате будет получен отчет о выполнении содержащий список проведенных тестов, результат проведения теста, общее затраченное время и память. 4.2 ВнедрениеПосле тестирования и отладки система была введена в работу отдела организации дознания по Вологодской области и отдела дознания отдела полиции №3 по городу Вологда. Сейчас происходит эксплуатационное тестирование системы и сбор данных о необходимости внесения изменений и исправлений в систему. Апробация проводится группой дознавателей отдела полиции №3. Контроль за ходом внедрения системы осуществляют ответственные сотрудники отдела организации дознания при поддержке центра информационных технологий, связи и защиты информации. Система внедрена в локальную вычислительную сеть МВД по Вологодской области. В качестве сервера используется компьютер, работающий под управлением Windows Server 2012, в качестве веб-сервера программное обеспечение Apache. На этом же компьютере расположена база данных MySql. Исходные файлы системы помещены в директорию «C:/www» сервера, далее при помощи команды «php yii migrate» применяются доступные миграции и в базе данных сервера создаются необходимые для работы системы таблицы. АРМ-Д доступно по IP-адресу сервера. Сотрудниками центра информационных технологий произведена настройка программного комплекса ViPNet, обеспечивающего защиту внутренней сети и проверена доступность системы с различных рабочих мест. Во внедренной версии системы отключены инструменты отладки и модуль gii. Также настроено ежедневное резервное копирование базы данных. Совместно с сотрудниками отдела организации дознания разработано руководство пользователя и руководство по включению проверки орфографии в браузере Mozilla Firefox. Ссылки на руководства размещены на главной странице системы и доступны независимо от того, авторизован пользователь или нет. Разработанное приложение выполняет все функции отраженные в выдвинутых требованиях. Пользователями отмечен достаточно понятный интерфейс, а также сокращение времени необходимого на ввод данных полученных при допросах и формировании обвинительных актов даже при отсутствии опыта работы в подобных системах. Реализованная подсистема отображения статистики в полной мере удовлетворяет требованиям администратора для создания отчетов о работе системы. ЗаключениеРезультатом данной выпускной квалификационной работы является разработка автоматизированной системы подготовки документов органов дознания УМВД по Вологодской области. Данная система должна сократить время, затрачиваемое сотрудниками органов дознания на оформление документации при проведении дознания по уголовным делам, а также повысить качество оформления данной документации и привести ее к единообразному виду на территории всей Вологодской области. В ходе выполнения анализа предметной области и постановки задачи установлено, что автоматизация подготовки документов хоть и является первоочередной задачей, но не является единственной. Помимо упомянутой автоматизации, в проект системы были включены функции контроля и сбора статистики. В пояснительной записке описан процесс проектирования и разработки, включавший в себя: анализ существующего программного обеспечения, выбор технологии языка и инструментальных средств, разработка требований к программному продукту, реализация и тестирование программного обеспечения. Разработанный программный продукт полностью отвечает предъявленным требованиям, его внедрение позволит повысить продуктивность органов дознания МВД по Вологодской области. Список использованных источниковPHP documentation [Электронный ресурс]: Официальный сайт разработчика PHP, 2019. – URL: https://www.php.net/docs.php. Мэтт Зандстра. PHP: объекты, шаблоны и методики программирования / Мэтт Зандстра — 3-е изд. - Москва: Вильямс, 2010. — 560 с. PhpStorm [Электронный ресурс]: Википедия сайт, 2019. – URL: https://ru.wikipedia.org/wiki/ PhpStorm. Model-View-Controller [Электронный ресурс]: RSDN сайт, 2019. – URL: http://rsdn.org/article/patterns/generic-mvc.xml. Yii PHP Framewok [Электронный ресурс]: Сайт разработчика Yii, 2019. – URL: https://www.yiiframework.com/. MySQL [Электронный ресурс]: Официальный сайт разработчика MySQL, 2019. – URL: https://www.mysql.com/. Полное руководство по Yii 2.0 [Электронный ресурс]: Сайт блог веб-программиста, 2019. – URL: https://p0vidl0.info/yii2-api-guides/. Web framework [Электронный ресурс]: Национальная библиотека им. Н.Э. Баумана сайт, 2019. – URL: https://ru.bmstu.wiki/Web_framework. Современный учебник JavaScript [Электронный ресурс]: learn javascript сайт, 2019. – URL: https://learn.javascript.ru/ Верстка сайтов [Электронный ресурс]: Html book сайт, 2019. – URL: http://htmlbook.ru/ ПРИЛОЖЕНИЕ 1(обязательное) Примеры миграций базы данных use yii\db\Migration; class m200117_081202_create_cases_table extends Migration { public function safeUp(){ $this->createTable('case', [ 'id' => $this->primaryKey(), 'number'=>$this->string(30)->notNull()->unique(), 'author_id'=>'tinyint not null', 'tovd_id'=>'tinyint not null', 'open_date'=>$this->date(), 'close_date'=>$this->date(), ]); $this->createIndex('idx-case-author_id', 'case', 'author_id'); $this->addForeignKey('fk-case-author_id', 'case', 'author_id', 'user', 'id', 'CASCADE'); $this->createIndex('idx-case-tovd_id', 'case', 'tovd_id'); $this->addForeignKey('fk-case-tovd_id', 'case', 'author_id', 'tovd', 'id', 'CASCADE'); } public function safeDown(){$this->dropTable('case');} } use yii\db\Migration; class m200117_081130_create_inquest_table extends Migration { public function safeUp(){ $this->createTable('inquest', [ 'id' => $this->primaryKey(), 'person_id'=>$this->string(30), 'case_number'=>$this->string(30), 'create_date'=>$this->date(), 'room'=>$this->string(180)->comment('Помещение'), 'start_time'=>$this->string(120), 'stop_time'=>$this->string(120), 'hardware'=>$this->text()->comment('Применяемое оборудование'), 'otherperson'=>$this->text()->comment('Другие присутствующие'), 'article'=>$this->text()->comment('Статья'), 'incriminate'=>$this->text()->comment('Обвинение'), 'indications'=>$this->text()->comment('Показания'), 'dopstat'=>$this->text()->comment('Заявления'), 'lawyer'=>$this->string(120), 'lawyerIdentity'=>$this->string(120), 'lawyerOrder'=>$this->string(120), 'education'=>$this->string(120), 'conclusion'=>$this->string(30), 'specialistAnswer'=>$this->text()->comment('Номер дела'), ]); $this->createIndex('idx-inquest-person_id', 'inquest', ' person_id''); $this->addForeignKey('fk-case-tovd_id', 'inquest', 'person_id', 'person', 'id', 'CASCADE'); $this->createIndex('idx-inquest-case_number', ' inquest ', 'case_number'); $this->addForeignKey('fk-case-case_number', 'inquest', 'case_number', 'case', 'number', 'CASCADE'); } public function safeDown(){$this->dropTable('rotocol');} } use yii\db\Migration; class m200117_081145_create_persons_table extends Migration { public function safeUp(){ $this->createTable('persons', [ 'id' => $this->primaryKey(), 'case_number'=>$this->string(30), 'name'=>$this->string(60), 'role'=>$this->string(30)->comment('Роль'), 'passport'=>$this->string(40), 'birthdate'=>$this->date(), 'birthplace'=>$this->string(120), 'residence'=>$this->string(120)->comment('Адрес проживания'), 'nationality'=>$this->string(30), 'education'=>$this->string(120), 'workplace'=>$this->string(120), 'duty'=>$this->string(30)->comment('Воинская обязанность'), 'crime'=>$this->text()->comment('Судимости'), 'phone'=>$this->string(30), 'other'=>$this->text()->comment('Другие данные о личности'), 'position'=>$this->string(30)->comment('Должность'), 'experience'=>$this->string(30)->comment('Опыт в должности'), ]);} public function safeDown(){$this->dropTable('persons');} } |