
- •Содержание
- •Аннотация
- •Введение
- •Постановка задачи
- •Разработка и согласование тз на информационную систему
- •Формирование команды проекта, распределение обязанностей в команде, выбор методологии разработки по
- •Распределение трудовых ресурсов
- •Описание используемой методологии разработки по
- •Технико-экономическое обоснование проекта
- •Выполнение технико-экономических требований
- •Этапы проведения работ по созданию системы
- •Расчет сметной стоимости создания системы
- •Оценка стоимости эксплуатации ис «ebis»
- •Затраты на сопровождение ис «ebis».
- •Затраты на эксплуатацию ис «ebis».
- •Экономическая целесообразность разработки системы
- •Сбор требований к разрабатываемой системе, выявление основных групп пользователей системы
- •Анализ рисков проекта, описание мер уменьшения их влияния на результат выполнения проекта
- •Описание угроз и возможностей, которые могут возникнуть в процессе работы над проектом
- •Оценки рисков, проведённая аналитиком проекта
- •Описание сценариев работы с рисками
- •План проекта
- •Описание архитектуры системы
- •База данных
- •Принятие основных решений по видам обеспечений системы
- •Принятие основных решений по безопасности и отказоустойчивости системы
- •Защита от межсайтового скриптинга (xss)
- •Защита от подделки межсайтового запроса (csrf)
- •Защита от внедрения sql (sql-injection)
- •Разработка структур данных и основных решений
- •Разработка основных компонентов системы
- •Описание приложения менеджера учетных записей (apps.Accounts)
- •Описание приложения для управления сервисом вопросов и ответов (apps.Forum)
- •Описание решений по организации тестирования системы
- •Разработка средств автоматизированного развертывания системы и основных решений по автоматизации рутинных задач
- •Описание выбора окончательного решения
- •Оптимизация проекта
- •Анализ и оптимизация плана проекта
- •Анализ и оптимизация плана работ
- •Анализ и оптимизация стоимости проекта
- •Анализ рисков
- •Проведение испытаний в соответствии с программой и методикой испытаний
- •Перечень проверок, проводимых на 1 этапе испытаний
- •Перечень проверок, проводимых на 2 этапе испытаний
- •Оценка соответствия окончательного варианта системы требованиям технического задания
- •Описание решений по сопровождению системы
- •Заключение
- •Список использованных источников
Разработка структур данных и основных решений
Разработка основных компонентов системы
Основными компонентами разработанной системы являются приложения (applications) и шаблоны (templates). В свою очередь, приложения состоят из моделей (models) и представлений (views).
Приложения - это Web-приложение, которое предоставляет определенный функционал. В системе EBIS используются следующие приложения:
django.contrib.auth – система аутентификации;
django.contrib.contenttypes - управление объектами "contenttypes";
django.contrib.sessions – управление сессиями.
django.contrib.staticfiles – приложение для работы со статическими файлами;
django.contrib.admin - приложение для администрирования системы;
accounts - менеджер учетных записей;
forum - приложение для управления сервисом вопросов и ответов.
Приложение 1-5 входят в состав фреймоворка Django. Подробное описание данных приложений доступон в официальной документации фреймворка Django [ссылка на документацию]. Приложения 6-7 разработанны специально для системы EBIS. Описание данных приложений приведено в разделах 3.1.2 – 3.1.3.
Модель - отображение информации о данных, с которыми работает приложение. Каждая модель представлена классом, унаследованным от django.db.models.Model. Каждая модель содержит несколько атрибутов, каждый из которых отображает поле в таблице базы данных. Каждое поле представлено экземпляром класса Field – например, CharField для текстовых полей и DateTimeField для полей даты и времени. Это указывает Django какие типы данных хранят эти поля.
Представление – это “тип” страниц приложения, которое является функцией для обработки запроса и использует шаблон для генерации страницы. Django выбирается представление анализируя запрошенный URL (часть URL-а после домена). Чтобы из URL-а получить представление, Django используется так называемый ‘URLconf’. URLconf определяет соответствие URL-шаблонов(являются регулярными выражениями) и представлений. Чтобы из URL-а получить представление, Django используется так называемый ‘URLconf’. URLconf определяет соответствие URL-шаблонов(являются регулярными выражениями) и представлений.
Шаблон - применяются для генерации web-страниц пользовательского интерфейса. В своей основе, шаблоны являются простыми текстовыми файлами. Они содержат переменные, которые будут заменены значениями при выполнении шаблона, и теги, которые управляют логикой шаблона.
Описание приложения менеджера учетных записей (apps.Accounts)
Приложение accounts отвечает за регистрацию и аутентификацию пользователей. Приложение accounts оперирует объектами класса User.
Объекты User - основа системы аутентификации. Они представляют пользователей сайта и используятся для проверки прав доступа, регистрации пользователей, ассоциации данных с пользователями. Для представления пользователей используется только один класс, ‘superusers’ или ‘staff’ пользователи - это объект пользователей с определенными атрибутами, а не другие классы пользователей.
Основные атрибуты пользователя представлены в таблице 3.1:
№ п/п |
Атрибут |
Описание |
|
username |
Имя пользователя. Видно всем. |
|
password |
Пароль |
|
Адрес электронной почты |
|
|
first_name |
Реальное имя. Видно только администраторам. |
|
last_name |
Реальная фамалия. Видна только администраторам. |
Описание модели User, используемой в приложнии accounts доступно в официальной документации фреймворка Django [ссылка на документацию].
Описание представлений приложения accounts приведено в таблице 3.1:
№ п/п |
Наименование |
Входные параметры |
Описание |
|
sign_in |
- |
Регистрация пользователя. |
|
log_in |
- |
Вход в систему (аутентификация) |
|
log_out |
- |
Выход из системы. |
Сопоставление представлений с URL-шаблонами приведено в таблице 3.2:
№ п/п |
URL-шаблон |
Сопоставленное представление (view) |
|
sign-in/ |
sign_in |
|
log-in/ |
log_in |
|
log-out/ |
log_out |