2. Специальная (практическая, опытно-эксперментальная) часть 2.1. Анализ задачи В соответствии с заданием на выпускную квалификацоинную работу надо разработать программную среду для администрирования новостей на сайте. Сайт предприятия поддерживается одним из компьютеров предприятия в качестве сервера. Один из разделов сайта предоставляет пользователям возможность просматривать новости. В целях большей безопасности от внешних атак было решено реализовать среду администрирования новостей локально на этом компьютере с генерацией совокупности HTML-документов, которая и будет выставляться на сайт в качестве раздела "Новости". Программа должна запускаться как локальное приложение Windows. При входе в программу должна осуществляться аутентификация пользователей, в зависимости от результатов которой предоставляются разные права. Кто-то имет право и просматривать, и администрировать новости, кто-то - только просматривать, а все остальные вообще не могут войти в программу. Администрирование раздела новостей включает в себя возможности: - добавлять картинку и текст новости; - заменять картинку имеющейся новости; - редактировать текст имеющейся новости; - удалять новость. Описанный выше функционал программы должен реализовываться в соответствующем ему интерфейсе. При запуске программы должна открываться форма аутентификации, содержащая поля для ввода имени пользователя и его пароля. При вводе пароля он не должен быть виден, его символы должны заменяться на звёздочки или что-то подобное. Должны быть кнопки "Войти" и "Регистрация". После входа зарегистрированного пользователя должна открываться главная форма программы, вид и возможности которой определяются правами доступа пользователя. Основную часть формы должно занимать поле для просмотра новостей. Если пользователь обладает правом администрирования, то для него активны и средства добавления, редактирования и удаления новостей. Программа должна содержать в себе базу данных. Выполним анализ предметной области, чтобы определить структуру этой базы данных.. Из сказанного выше ясно, что одним из объектов предметной области является пользователь. Его характеристики с точки зрения решаемой задачи следующие: - фамилия, имя и отчество (мы имеем возможность потребовать от регистрирующегося пользователя входить под уникальным именем, поэтому данное поле объявим ключевым); - пароль; - права доступа: это будет текстовое поле, содержащее букву "А", если пользователь имеет права и просматривать, и администрировать новости; букву "П", если только просматривать; это поле пустое, если пользователь запросил регистрацию, но она ещё не утверждена. Ещё одним объектом предметной области, очевидно, является новость. Её атрибуты следующие: - дата и время добавления новости (поскольку невозможно, чтобы в один и тот же момент времени было добавлено две разные новости, это поле уникально и может играть роль ключевого); - название новости; - текст новости; - картинка, прикреплённая к новости; - кто добавил новость (ссылка на соответствующую позицию списка пользователей). Описанная выше информационная модель предметной области схематически представлена в виде ER-диаграммы на рисунке А.1. Необходимо ещё продумать структуру новостного раздела сайта. Главная страница раздела будет содержать таблицу, в которой размещаются "превью" новостей. Под "превью" понимается уменьшенная картинка новости, сопровождаемая названием новости и содержащая гиперссылку на страницу с подробным изложением новости. Помимо главной страницы раздела в его структуру входит множество страниц с подробным изложением всех новостей. На каждой из этих страниц имеется полноразмерная картинка, название новости крупным шрифтом, текст новости и гиперссылка на главную страницу раздела. Структура новостного раздела сайта изображена в виде схемы данных, в соответствии с требованиями ГОСТ ЕСПД, на рисунке А.2. Приложение А (обязательное) Рисунок А.1 - ER-диаграмма информационной модели предметной области Рисунок А.2 - схема данных, обоюражающая структуру новостного раздела сайта предприятия
1/--страниц