- •Введение
- •Анализ предметной области
- •Структура комитета государственной безопасности Республики Беларусь
- •Обзор существующих аналогов
- •Аналитический обзор
- •Язык программирования php
- •Архитектура клиент-сервер
- •Rest-сервис
- •Системное проектирование
- •Функциональное проектирование
- •Классы, реализующие непосредственно логику работы веб-приложения
- •Класс AccountController
- •Класс ConvictionsController
- •Класс DefendantsController
- •Класс ExcelController
- •Класс IndexController
- •Класс NoticesController
- •Класс PlacesWorkController
- •Класс PreventivesController
- •Класс PrivateCasesController
- •Класс UrlController
- •Класс UsersController
- •Класс RelativesController
- •Класс ChangePinaltiesController
- •Класс ViolationsController
- •Класс AmnistiesController
- •Класс PartnersController
- •Класс PaymentsController
- •Класс TreatmentsController
- •Структура таблиц базы данных
- •Классы работы с базой данных и доступа к данным
- •Класс ModelManager
- •Класс DynamicModel
- •Разработка программных модулей
- •Авторизация
- •Заведение дела
- •Программа и методика испытаний
- •Определение вида тестирования
- •Объект тестирования
- •Выход из системы
- •Добавить сотрудника
- •Просмотреть список сотрудников
- •Редактировать сотрудника
- •Изменить пароль сотрудника
- •Удалить сотрудника
- •Добавить правонарушителя
- •Просмотреть список правонарушителей
- •Просмотреть правонарушителя
- •Редактировать правонарушителя
- •Удалить правонарушителя
- •Добавить место работы правонарушителя
- •Просмотреть место работы правонарушителя
- •Редактировать место работы правонарушителя
- •Удалить место работы правонарушителя
- •Добавить родственника
- •Просмотреть список родственников
- •Просмотреть родственника
- •Редактировать родственника
- •Удалить родственника
- •Добавить дело
- •Просмотреть список дел
- •Просмотреть дело
- •Редактировать дело
- •Удалить дело
- •Добавить осуждение
- •Просмотреть список осуждений
- •Просмотреть осуждение
- •Редактировать осуждение
- •Удалить осуждение
- •Добавить нарушение
- •Просмотреть список нарушений
- •Просмотреть нарушение
- •Редактировать нарушение
- •Удалить нарушение
- •Добавить отчет профучета
- •Просмотреть список отчетов профучета
- •Просмотреть отчет профучета
- •Редактировать отчет профучета
- •Удалить отчет профучета
- •Руководство пользователя
- •Назначение веб-приложения для автоматизации учета правонарушений
- •Условия выполнения
- •Функциональные возможности
- •Авторизация сотрудников
- •Ведение базы сотрудников
- •Ведение базы правонарушений
- •Ведение базы личных дел правонарушителей
- •Технико-экономическое обоснование проекта веб-приложения для автоматизации учета правонарушений
- •Характеристика программного продукта
- •Расчет затрат и отпускной цены веб-приложения для автоматизации учета правонарушений
- •Основная заработная плата исполнителей проекта определяется по формуле (7.1):
- •Расчет стоимостной оценки результата от разработки веб-приложения по автоматизации учета правонарушений
- •Расчет показателей эффективности разработки программного продукта
- •Заключение
- •Список используемых источников
Аналитический обзор
Веб-приложение для автоматизации учета правонарушений представляет собой веб-приложение, написанное на языке PHP установленное и настроенное на удаленном сервере под управлением Linux, предоставляющее интерфейс, с использованием HTML, CSS и JavaScript, для взаимодействия с системы с пользователем, посредством HTTP запросов, передавая данные в виде XML.
Веб-приложение – это клиент-серверное приложение, в котором клиентом выступает браузер, а сервером – веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами. Для того чтобы получить представление о том, что такое веб-сервер, написанный на PHP, можно воспользоваться книгой «Разработка веб -приложений с помощью PHP и MySQL». [1]
Данная книга раскроет базовые аспекты по разработке веб -приложений, управляемых базами данных. В ней подробно описано применение PHP и MySQL для построения крупных коммерческих веб-сайтов. Одним из достоинств книги является то, что основное внимание в книге уделено реальным приложениям. Здесь рассматриваются как простые интерактивные системы приема заказов, так и различные аспекты электронных систем продажи и безопасности во взаимосвязи с созданием реального веб-сайта. Подробно описаны все стадии разработки множества типовых проектов на PHP и MySQL, в числе которых служба веб -почты, приложение поддержки веб-форумов и электронный книжный магазин. Заслуживают особого внимания главы, посвященные объектно-ориентированному программированию на PHP, динамической генерации документов, доступу к веб-службам с помощью XML и SOAP и созданию приложений Веб 2.0 с помощью AJAX.
Язык программирования php
PHP (Hypertext Preprocessor – Препроцессор Гипертекста) – это широко используемый язык сценариев общего назначения с открытым исходным кодом. [2]
PHP – язык программирования, специально разработанный для написания веб-приложений (скриптов, сценариев), исполняющихся на веб-сервере. Синтаксис языка во многом основывается на синтаксисе C, Java и Perl. Он очень похож на С и на Perl. С другой стороны, язык PHP проще, чем C, и его может освоить веб-мастер, не знающий пока других языков программирования.
Огромным плюсом PHP, в отличие от, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. PHP не зависит от скорости компьютера пользователя или его браузера, он полностью работает на сервере. Пользователь даже может не знать, получает ли он обычный HTML-файл или результат выполнения скрипта.
Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминирование в области языков веб-программирования.
MySQL
MySQL – это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет сайтов, как небольших, так и достаточно крупных. [3]
MySQL отличатся хорошей скоростью работы, надежностью,
гибкостью. Работа с ней, как правило, не вызывает больших трудностей. Поддержка сервера MySQL автоматически включается в поставку PHP.
Немаловажным фактором является ее бесплатность. MySQL распространяется на условиях общей лицензии GNU (GPL, GNU Public License).
Ранее для долговременного хранения информации использовались файлы: помещали в них некоторое количество строчек, а затем извлекали их для последующей работы. Задача длительного хранения информации очень часто встречается в программировании веб-приложений: подсчёт посетителей в счётчике, хранение сообщений в форуме, удалённое управление содержанием информации на сайте и т.д.
Между тем, профессиональные приёмы работы с файлами очень трудоёмки: необходимо заботится о помещении в них информации, о её сортировке, извлечении, при этом не нужно забывать, что все эти действия будут происходить на сервере хост-провайдера, где с очень большой вероятностью стоит один из вариантов Unix – следовательно, нужно так же заботится о правах доступа к файлам и их размещении. При этом объём кода значительно возрастает, и совершить ошибку в программе очень просто.
Все эти проблемы решает использование базы данных. Базы данных сами заботятся о безопасности информации и её сортировке и позволяют извлекать и размещать информацию при помощи одной строчки. Код с использованием базы данных получается более компактным, и отлаживать его гораздо легче. Кроме того, не нужно забывать и о скорости – выборка информации из базы данных происходит значительно быстрее, чем из файлов.
Приложение на РНР, использующее для хранения информации базу данных (в частности MySql) всегда работает быстрее приложения, построенного на файлах. Дело в том, что базы данных написаны на языке C++, и написать на PHP программу, которая работала бы с жёстким диском эффективнее базы данных – задача неразрешимая по определению, поскольку программы на PHP в принципе работают медленнее, чем программы на C++, так как РНР – интерпретатор, а С++ – компилятор.
Таким образом, основное достоинство базы данных заключается в том, что она берёт на себя всю работу с жёстким диском и делает это очень эффективно.
Web-сервер Apache
Apache – это HTTP сервер, обладающий высокой надежностью и гибкостью, под HTTP сервером следует понимать программное обеспечение для обработки HTTP запросов. Основная работа Apache это обработка и ответ на HTTP запросы и генерирование динамическое содержание страниц. Гибкость достигается путем использования файла .htaccess, благодаря которому можно переопределять глобальные настройки сервера Apache. Выглядит это следующим образом. Apache имеет свои глобальные настройки, но при обращении к сайту он ищет файл .htaccess, считывает из него директивы и применяет их, а не глобальные. Обычно файл .htaccess лежит в корне сайта, и определяет настройки сервера для всего сайта, однако он может располагаться и в любом внутреннем каталоге сайта, определяя таким образом настройки сервера именно для этого каталога. Вебмастерами этот файл используется для настройки редиректов, обработки ошибок, безопасности, доступа, кодировки и т.д. [4]
Apache имеет механизм для определения виртуальных хостов, благодаря чему на одном IP адресе может находится неограниченное количество сайтов, именно таким образом работает виртуальный хостинг. Также существует большое количество модулей, позволяющих ему работать с большинством популярных языков программирования и расширять функциональность.
На сегодняшний день Apache является одним из самых популярных ПО для веб-сервера. Его используют хостинг-провайдеры по всему миру.
HTML & CSS
HTML (от англ. HyperText Markup Language – язык гипертекстовой разметки) – стандартизированный язык разметки документов во всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML. Язык HTML интерпретируется браузерами; полученный в результате интерпретации форматированный текст отображается на экране монитора компьютера или мобильного устройства. [5]
Под гипертекстом в этом случае понимается текст, связанный с другими текстами указателями-ссылками.
Язык HTML является приложением SGML (стандартного обобщённого языка разметки) и соответствует международному стандарту ISO 8879.
Во всемирной паутине HTML-страницы, как правило, передаются браузерам от сервера по протоколам HTTP или HTTPS, в виде простого текста или с использованием шифрования.
HTML представляет собой достаточно простой набор кодов, которые описывают структуру документа. HTML позволяет выделить в тексте отдельные логические части (заголовки, абзацы, списки и т.д.), поместить на web-страницу подготовленную фотографию или картинку, организовать на странице ссылки для связи с другими документами.
HTML не задает конкретные и точные атрибуты форматирования документа. Конкретный вид документа окончательно определяет только программа-браузер на компьютере пользователя Интернета.
HTML также не является языком программирования, но веб-страницы могут включать в себя встроенные программы-скрипты на языках JavaScript и Visual Basic Script и программы-апплеты на языке Java.
Основными компонентами HTML являются:
тег;
атрибут;
значение.
Тег HTML это компонент, который командует веб-браузеру выполнить определенную задачу типа создания абзаца или вставки изображения.
Атрибут HTML изменяет тег. Например, можно выровнять абзац или изображение внутри тега.
Значение. Значения присваиваются атрибутам и определяют вносимые изменения. Например, если для тега используется атрибут выравнивания, то можно указать значение этого атрибута.
Теги представляют собой зарезервированные последовательности символов, начинающиеся с “<” (знака меньше) и заканчивающиеся “>” (знаком больше).
Закрытие тега отличается от открытия только наличием символа “/”.
JavaScript
JavaScript – прототипно-ориентированный сценарный язык программирования. Является реализацией языка ECMAScript (стандарт ECMA-262). [6]
JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
JavaScript изначально создавался для того, чтобы сделать web-странички «живыми». Программы на этом языке называются скриптами. В браузере они подключаются напрямую к HTML и, как только загружается страничка – тут же выполняются.
Программы на JavaScript – обычный текст. Они не требуют какой-то специальной подготовки.
В этом плане JavaScript сильно отличается от другого языка, который называется Java.
JavaScript может выполняться не только в браузере, а где угодно, нужна лишь специальная программа – интерпретатор. Процесс выполнения скрипта называют «интерпретацией».
Современные интерпретаторы перед выполнением преобразуют JavaScript в машинный код или близко к нему, оптимизируют, а уже затем выполняют. И даже во время выполнения стараются оптимизировать. Поэтому JavaScript работает очень быстро.
Во все основные браузеры встроен интерпретатор JavaScript, именно поэтому они могут выполнять скрипты на странице. Но, разумеется, JavaScript можно использовать не только в браузере. Это полноценный язык, программы на котором можно запускать и на сервере, и даже в стиральной машинке, если в ней установлен соответствующий интерпретатор.
Современный JavaScript – это «безопасный» язык программирования общего назначения. Он не предоставляет низкоуровневых средств работы с памятью, процессором, так как изначально был ориентирован на браузеры, в которых это не требуется.
Что же касается остальных возможностей – они зависят от окружения, в котором запущен JavaScript. В браузере JavaScript умеет делать всё, что относится к манипуляции со страницей, взаимодействию с посетителем и, в какой-то мере, с сервером:
Создавать новые HTML-теги, удалять существующие, менять стили элементов, прятать, показывать элементы и т.п.
Реагировать на действия посетителя, обрабатывать клики мыши, перемещения курсора, нажатия на клавиатуру и т.п.
Посылать запросы на сервер и загружать данные без перезагрузки страницы (AJAX).
Получать и устанавливать cookie, запрашивать данные, выводить сообщения и многое, многое другое.
JavaScript – быстрый и мощный язык, но браузер накладывает на его исполнение некоторые ограничения.
Это сделано для безопасности пользователей, чтобы злоумышленник не мог с помощью JavaScript получить личные данные или как-то навредить компьютеру пользователя.
Этих ограничений нет там, где JavaScript используется вне браузера, например, на сервере. Кроме того, современные браузеры предоставляют свои механизмы по установке плагинов и расширений, которые обладают расширенными возможностями, но требуют специальных действий по установке от пользователя
Большинство возможностей JavaScript в браузере ограничено текущим окном и страницей, которые приведены на рисунке 1.1.
JavaScript не может читать/записывать произвольные файлы на жесткий диск, копировать их или вызывать программы. Он не имеет прямого доступа к операционной системе.
Современные браузеры могут работать с файлами, но эта возможность ограничена специально выделенной директорией – «песочницей». Возможности по доступу к устройствам также прорабатываются в современных стандартах и частично доступны в некоторых браузерах.
JavaScript, работающий в одной вкладке, не может общаться с другими вкладками и окнами, за исключением случая, когда он сам открыл это окно или несколько вкладок из одного источника (одинаковый домен, порт, протокол).
Есть способы это обойти, и они раскрыты в учебнике, но они требуют специального кода на оба документа, которые находятся в разных вкладках или окнах. Без него, из соображений безопасности, залезть из одной вкладки в другую при помощи JavaScript нельзя.
Из JavaScript можно легко посылать запросы на сервер, с которого пришла страница. Запрос на другой домен тоже возможен, но менее удобен, т. к. и здесь есть ограничения безопасности.
Рисунок 1.1 – Ограничения возможностей JavaScript
Есть как минимум три замечательных особенности JavaScript:
полная интеграция с HTML/CSS;
простые вещи делаются просто;
поддерживается всеми распространёнными браузерами и включён по умолчанию.
Поэтому JavaScript и является самым распространённым средством создания браузерных интерфейсов.
