Вкр. ВКР_Мехаев_И. Анализ предметной области и постановка задачи 8 1 Анализ предметной области 8 1 Органы дознания умвд россии по Вологод
Скачать 4.27 Mb.
|
2 Проектирование2.1 Выбор средств разработкиВ рамках выпускной квалификационной работы, разрабатывается система подготовки печатных документов для органов дознания, состоящая их базы данных, хранящей введенные пользователями и различные служебные данные, серверной части и веб-приложения, обеспечивающее взаимодействие пользователей с системой. Исходя из требований выдвигаемых к системе и различный уровень подготовки пользователей, необходимо создать современный и нетребовательный продукт обладающий простым и понятным интерфейсом. 2.1.1 Выбор СУБДВ качестве системы управления базами данных, была выбрана MySQL. MySQL является реляционной СУБД, то есть данные в ее базах, хранятся в виде связанных таблиц, а доступ к хранящимся данным осуществляется посредством языка SQL. Данная СУБД, является оптимальным решением для малых и средних приложений, благодаря свободному распространению, надежности, производительности, а также простоте доступа, настройки, администрирования, разработки и управления базами данных с использованием языка SQL. MySQL позволяет работать с базами не только посредством командной строки, но также и при помощи различных приложений обладающих графическим интерфейсом, такими как PhpMyAdmin. Это позволяет упростить работу с базами как для разработчика, так в дальнейшем и для администратора. 2.1.2 Выбор языка программированияРазрабатываемая в рамках ВКР система делится на клиентскую и серверную части. Клиентская часть системы это та часть, которая будет выполняться на компьютере пользователя в браузере и формировать интерфейс. В этой части выбор средств разработки очевиден – HTML и CSS для создания внешнего вида страниц пользовательского интерфейса и JavaScript в качестве языка сценариев, для придания интерактивности веб-страницам В качестве языка программирования серверной части выбор не столь очевиден. Код серверной части будет выполняться на самом сервере, что никак не повлияет на выбор браузера и не предъявит высоких системных требований и электронно-вычислительной машине пользователя. На сегодняшний момент существует огромное количество языков программирования которые можно использовать для написания серверных частей веб-приложений: PHP, Perl, Python, Ruby, Java, Groovy, JavaScript и любой из .NET языков. В плане выбора языка серверной части практически не существует технических ограничений, то есть разрабатываемую систему можно реализовать в полном объеме на любом из популярных языков. Поэтому был выбран скриптовый язык общего назначения PHP, как наиболее распространенный для разработки подобных продуктов. PHP является интерпретируемым языком программирования, позволяющим создавать программы как в процедурном, так и объектно-ориентированном стиле. Данный язык отлично подходит для средних и малых проектов, а большое количество различных библиотек, фреймворков и справочных материалов по функциям и возможностям языка позволит быстро и качественно реализовать проект. Также распространенность языка означает, что после разработки и внедрения продукта, заказчик самостоятельно сможет организовать поддержку и дальнейшее развитие продукта силами ЦИТСиЗИ или ИЦ. Для языка PHP существует удобный инструмент, менеджер пакетов composer. Composer – это инструмент для управления зависимостями. Он позволяет объявить библиотеки, от которых будет зависеть создаваемый проект, и он будет управлять ими, то есть устанавливать и обновлять их. Composer не является менеджером пакетов в том же смысле, что Yum или Apt. Хоть, он имеет дело с "пакетами" или библиотеками, но управляет ими на основе каждого проекта, устанавливая их в каталог внутри создаваемого проекта. По умолчанию он ничего не устанавливает глобально. Таким образом, это менеджер зависимостей. Composer объявлять библиотеки, от которых зависит продукт. Выясняет, какие версии каких пакетов могут и должны быть установлены, и устанавливает их, то есть загружает их. 2.1.3 Шаблон проектирования MVCДля разработки автоматизированной системы подготовки печатных документов АРМ-Д, решено использовать шаблон проектирования MVC (Model-View-Controller: модель-вид-контроллер). Шаблон проектирования MVC предполагает разделение данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента: модель, представление и контроллер – таким образом, что модификация каждого компонента может осуществляться независимо. Модель (Model) предоставляет данные предметной области представлению и реагирует на команды контроллера, изменяя свое состояние. Представление (View) отвечает за отображение данных предметной области (модели) пользователю, реагируя на изменения модели. Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений. Приложение, построенное на шаблоне MVC можно представить в виде упрощенной схемы, изображенной на рисунке 2.1. Рисунок 2.1 – Общий вид приложения MVC Основная цель применения этой концепции состоит в отделении бизнес-логики (модели) от её визуализации (представления, вида). За счёт такого разделения повышается возможность повторного использования кода. Наиболее полезно применение данной концепции в тех случаях, когда пользователь должен видеть те же самые данные одновременно в различных контекстах и/или с различных точек зрения. В частности, выполняются следующие задачи: к одной модели можно присоединить несколько видов, при этом не затрагивая реализацию модели. Например, некоторые данные могут быть одновременно представлены в виде электронной таблицы, гистограммы и круговой диаграммы; не затрагивая реализацию видов, можно изменить реакции на действия пользователя (нажатие мышью на кнопке, ввод данных) — для этого достаточно использовать другой контроллер; ряд разработчиков специализируется только в одной из областей: либо разрабатывают графический интерфейс, либо разрабатывают бизнес-логику. Поэтому возможно добиться того, что программисты, занимающиеся разработкой бизнес-логики (модели), вообще не будут осведомлены о том, какое представление будет использоваться. Модель предоставляет данные и методы работы с ними: запросы в базу данных, проверка на корректность. Модель не зависит от представления (не знает как данные визуализировать) и контроллера (не имеет точек взаимодействия с пользователем) просто предоставляя доступ к данным и управлению ими. Модель строится таким образом, чтобы отвечать на запросы, изменяя своё состояние, при этом может быть встроено уведомление «наблюдателей». Модель, за счёт независимости от визуального представления, может иметь несколько различных представлений для одной «модели». Представление отвечает за получение необходимых данных из модели и отправляет их пользователю. Представление не обрабатывает введённые данные пользователя. Контроллер обеспечивает «связь» между пользователем и системой. Контролирует и направляет данные от пользователя к системе и наоборот. Использует модель и представление для реализации необходимого действия. Поскольку MVC не имеет строгой реализации, то реализован он может быть по-разному. Нет общепринятого определения, где должна располагаться бизнес-логика. Она может находиться как в контроллере, так и в модели. В последнем случае, модель будет содержать все бизнес-объекты со всеми данными и функциями. Некоторые фреймворки жестко задают где должна располагаться бизнес-логика, другие не имеют таких правил. Также не указано, где должна находиться проверка введённых пользователем данных. Простая валидация может встречаться даже в представлении, но чаще они встречаются в контроллере или модели. Интернационализация и форматирование данных также не имеет четких указаний по расположению. 2.1.4 Выбор фреймворкаПосле выбора серверного языка программирования, было принято решение реализовывать проект при помощи одного из фреймворков PHP. Разработка при помощи фреймворка дает следующие преимущества: Сокращение сроков разработки Позволяет создавать хорошо структурированный, «читаемый» и повторно используемый код Способствует применению современных методов программирования, таких как объектно-орентированный Полученных продукт легко масштабируется и расширяется Легко реализуется модель MVC (Модель-Представление Контроллер), что позволяет разделить логику приложения и представление днных. Из всего множества фреймворков, был выбран Yii2. Yii от английского «Yes it is» – активно развивающийся, объектно-ориентированный фреймворк. Он является одним и наиболее быстрых PHP фреймворков, поскольку использует концепцию «отложенной» загрузки. В нем применяется объектно-ориентированный подход и концепция DRY (Don’t Repeat Yourself – не повторяйся), а также реализуется парадигма MVC. Yii2 позволяет создавать понятный и читаемый код. Содержит набор AJAX-функций, тесно интегрирован с jQuery и поддерживает Bootstrap и различные темы оформления, что позволяет легко создавать и настраивать внешний вид. Также имеет генератор кода Gii для CRUD-операций (Создание-Чтение-Модификация-Удаление). Для работы с базами данных, имеет удобный интерфейс ActiveRecord. Существует множество виджетов, библиотек и расширений. 2.1.5 Выбор среды разработкиНа сегодняшний день на рынке информационных технологий существует большое количество различных средств разработки приложений, как простые редакторы кода, так и интегрированные среды разработки IDE. Интегрированная среда разработки или IDE — это автономный пакет, который позволяет записывать, компилировать, выполнять и отлаживать код в одном и том же месте. Редактор кода представляет собой лишь редактор с функциями облегчающими процесс разработки и написания кода программ. Обычно IDE специализированы, то есть ориентированы на работу с одним языком программирования, но есть и исключения. IDE включает в себя компилятор, интерпретатор и отладчик. И IDE, и редакторы кода имеют схожие функции, такие как автоматическое завершение кода, подсказки, выделение разделов кода и пользовательское закрытие разделов кода. Для совершенствования рабочего процесса и облегчения выполнения некоторых задач, необходимо использовать интегрированную среду разработки. Сейчас доступно огромное количество интегрированных средств разработки, вот некоторые из них: 1) NetBeans - популярная среда разработки для PHP поддерживающая русский язык. Данная среда динамично развивается и постоянно совершенствуется. В список функций среды редактирования входят: редактор автоматического завершения PHP кода с подсветкой синтаксиса, ошибок, вхождений; отладка кода, удобный интерфейс и система навигации, функция просмотра истории работы с файлом с возможностью вернуться назад и восстановить нужный элемент при возникновении ошибок. Установкой дополнительных плагинов, можно расширить возможности среды. 2) Sublime Text – текстовый редактор с возможностью подключения модуля IDE. Важными достоинствами Sublime Text, являются быстрая и удобная навигация, палитра команд, автоматическое завершение вводимого кода, автосохранение, а также широкий набор настроек позволяющий настроить его работу. Установка дополнительных плагинов позволяет работать с самыми разными языками программирования. 3) IDE Eclipse PDT – среда разработки PHP, разработанная на основе Eclipse. Сильная сторона - способность поддерживать большое количество языков программирования, отчего можно назвать продукт универсальным. Это делает систему востребованной веб-разработчиками во всем мире. В Eclipse PDT реализован очень удобный инструмент – рефакторинг, редактор производит анализ кода и в случае необходимости исправляет его самостоятельно. Интегрированная среда PDT позволяет локально отлаживать PHP-скрипты, но также есть возможность объединиться с Zend Server и XDebug и осуществлять отладку с их помощью. 4) PHPStorm - кроссплатформенная среда разработки PHP, с подсветкой кода, который обладает возможностью анализировать код, устраняя ошибки и даже предотвращая их появление. Среда допускает установку плагинов, которые могут увеличить функционал и модифицировать продукт под свои потребности. Интеграция этой среды с системами управлениями версиями, позволяет сравнивать несколько файлов, находить между ними разницу, совмещать данные не покидая PHPStorm. Для разработки системы в рамках ВКР выбрана интегированная среда разработки PHPStorm, поскольку обладает набором всевозможных функций, а также удобным и понятным интерфейсом. |