uzluga.ru
добавить свой файл
1


Федеральное агентство по образованию и науке Российской Федерации

ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ


Кафедра ПОАС


Курсовой проект по Технологиям Разработки ПО

Описание проекта

«Магистерский портал»






Исполнитель

Студент группы ПС-566

Горелов С.Н.

Нормоконтролёр



Руководитель

Зам. Зав. кафедры ПОАС

Жукова И.Г.

Волгоград
2010


Согласовано:

<___Горелов С.______________> _________________________

<___Пашаев С._______________> _________________________

<___Бастрыкин С.____________> _________________________

<___Виноградов А.___________> _________________________

<___Киммель С._____________> _________________________

<___Романенко Р.____________> _________________________

<___Щекин А._______________> _________________________

<___Потапов А.______________> _________________________

<___Мельникова М.__________> _________________________

<___Жорин С._______________> _________________________

<___Коновалов И.____________> _________________________

Содержание


Содержание 4

Постановка задачи 5

Описание модели требований 6

Функциональная структура приложения 8

Выбор технологий реализации 16

Состав и структура первого релиза программы 25

Состав и структура второго релиза 27

Разработка концепции проекта 28

Приложение А. 31

Архитектура системы 31

33

34

36



Постановка задачи


Необходимо разработать веб-приложение «магистерский портал», позволяющее решать следующие задачи: осуществлять информационную поддержку студентов и преподавателей; осуществлять хранение магистерских работ в репозитории документов; предоставлять пользователям интерфейс для управления проектами, аналогичный MS Project.

Описание модели требований


На «Магистерском портале» должно происходить общение студентов и преподавателей в рамках учебного процесса, а так же осуществляться контроль выполнения дипломных и прочих работ.

Должно быть предусмотрено два типа зарегистрированных пользователей: студент и преподаватель. Каждый зарегистрированный пользователь портала должен иметь личный кабинет.

Студенты должны иметь возможность выкладывать на портале главы своих работ. В ходе выполнения студентом работы преподаватели должны иметь возможность оставлять замечания по выложенным главам.

Общение зарегистрированных пользователей должно осуществляться посредством личных сообщений.

Личный кабинет представляет собой «рабочее место» пользователя. Пользователь в личном кабинете должен иметь возможность:

  1. Получать и отправлять личные сообщения другим пользователям;

  2. Получать и назначать задания другим пользователям;

  3. Добавлять/удалять пользователей в/из списка контактов;

  4. Работы с системой управления проектами;

  5. Выкладывать опубликованные работы;

  6. Назначать/Записываться на консультации;

  7. Ознакомиться со своим расписанием учебных занятий.

Поиск добавляемых пользователей в список контактов должен происходить по ФИО.

«Магистерский портал» должен содержать новостные ленты двух типов: «новостная лента от кафедры» (отображаются в личном кабинете) и «общие новости».

На портале должна быть предусмотрена страница «Конференции», на которой должна быть размещена информация о конференциях, которые пройдут в ближайшем будущем.

Портал должен выполнять информативную функцию о магистратуре, которая заключается в выдаче новостей, размещении документов и иных информационных материалов.

Функциональная структура приложения


Разделим весь функционал сайта на пять частей:
- менеджер задач;
- репозиторий;
- информационное обеспечение и элементы социальной сети;
- функции администратора / системные функции;

На второй релиз нам нужно будет сделать:

1. репозиторий

2. система управления меню

3. система управления страницами


С этим минимумом, мы получим прошлогодний портал.


Функции администратора / системные функции:



Функция

Вход

Выход

Описание

1.

Получение списка доступных к установке модулей








СУ модулями просматривает папки, в которых должны находиться модули, считывает информацию об имеющихся модулях и формирует список модулей, которые администратор может установить.

2.

Получение списка установленных модулей









СУ модулями просматривает БД и возвращает список установленных / функционирующих модулей.

3.

Резервное копирование БД модулей












4.

Резервное копирование БД сайта







Средствами СУБД создается резервная копия БД.



5.

Формирование списка ссылок на административные части установленных модулей







проверка модуля на наличие в БД установленных модулей

6.

Проверка целостности модуля (XML список файлов)







СУ модулями проверяет - существуют ли все необходимые файлы (задаются XML файлом в папке модуля) для нормального функционирования модуля и возвращает результат проверки.



7.

Установка модуля









СУ модулями создает запись в БД о модуле, данный модуль считается установленным и он может нормально функционировать.

8.

Удаление модуля









СУ модулями удаляет запись из БД об этом модуле, он считается удаленным и не может функционировать.

9.

Обновление модуля







Администратор указывает папку, в которой содержится более новая версия модуля, после чего из указанной папки копируются необходимые файлы.

10.

Отключение модуля







СУ модулями делает в БД отметку о том, что данный модуль считается установленным, но он не функционирует.

11.

Включение модуля







СУ модулями делает в БД отметку о том, что данный модуль считается установленным и он функционирует.

12.

Активация аккаунта / учетной записи







СУ пользователями делает в БД отметку о том, что данная запись считается активированной.

13.

Просмотр списка пользователей







СУ пользователями просматривает записи из БД о пользователях, и формирует список пользователей.

14.

Создание учётной записи пользователя







СУ пользователями добавляет запись о пользователе в БД.

15.

Удаление учётной записи пользователя







СУ пользователями удаляет запись о пользователе из БД.

16.

Изменение данных пользователя







СУ пользователями изменяет данные пользователя в БД.

17.

Создание роли







СУ ролями создает запись о роли в БД.

18.

Удаление роли







СУ ролями удаляет запись о роли из БД.

19.

Редактирование роли







СУ ролями изменяет данные о роли в БД.

20.

Просмотр списка существующих ролей







СУ ролями просматривает записи из БД о ролях, и формирует список ролей.


Информационное обеспечение и элементы социальной сети:



Функция

Вход

Выход

Описание

1.

Вход в личный кабинет / авторизация


Пользователь Х не авторизован, логин и пароль пользователя

Пользователь Х авторизован

До авторизации любой пользователь на сайте считается гостем и имеет очень скромные функциональные возможности. Авторизовавшись пользователь получит доступ к личному кабинету и тот функционал, которые доступен ролям данного пользователя. Авторизация происходит путем ввода регистрационных данных в форму авторизации на сайте.

2.

Выход из личного кабинета

Пользователь Х авторизован

Пользователь Х не авторизован



Завершая работу с сайтом, пользователь может "выйти" из системы, перейдя по соответствующей ссылке (или не обращаться к серверу в течение определенного времени, необходимого для разрыва "сессии") и стать вновь неавторизованным пользователем.

3.

Просмотр контактной информации пользователя



?

?

Перейдя по соответствующей ссылке пользователь попадает на страницу с контактной информацией другого пользователя. Контактную информацию могут просматривать как авторизованные пользователи, так и гости (неавторизованные).

4.

Редактирование контактной информации пользователя



Контактная информация пользователя Х

Измененная контактная информация пользователя Х

Каждый авторизованный пользователь может изменить _свои_ контактные данные, заполнив соответствующие поля на странице редактирования профиля.

5.

Регистрация пользователя


Гость, регистрационные данные

Зарегистрированный пользователь

Перейдя по соответствующей ссылке гость попадает на страницу регистрации, где в форме указывает свои данные (логин/пароль/e-mail). На указанный почтовый ящик будет выслано письмо с кодом для подтверждения учетной записи.

6.

Восстановление пароля 












Выбор технологий реализации


Фаза

Требования

Альтернативы

Результат

Планирование

Формирование сводного плана и календарного графика

MS Project, MS Visio

MS Project покрывает своей функциональностью все поставленные требования и имеет набор функций, которые ускоряют работу.

Функциональная спецификация проекта

Dia, StarUML, MS Visio

Dia является развивающимся и свободно распространяющимся продуктом в отличии от его конкурентов.

Разработка

Технология разработки

ASP.NET, Zend Framework, Ruby & Rails

Zend Framework является технологией на базе которой можно будет внедрить решение в информационную среду заказчика. Технология покрывает все функциональные требования или обеспечивает базис для их реализации.

Среда разработки

Zend Studio, Eclipse, NetBeans, Aptana

Zend Studio наиболее проста в развёртывании на рабочем месте программиста. Также она обладает функциями, которые могут облегчить разработку кода (автодополнение кода, генерация кода, рефакторинг) и отладку решения.

Контроль версий исходных ходов

CVS, SVN, Git

SVN наиболее устоявшаяся технология контроля версий с централизованным хранилищем. Использование Git вызвало бы разрозненность в исходных кодах из-за отсутствия постоянного доступа в интернет участников разработки.

Формирование структуры базы данных

MySQL Workbench, MS Visio

MySQL Workbench является специализированным продуктом по разработке структуры БД и позволяет переносить построенную структуру на сервер БД. Visio может только визуализировать структуру, но не экспортировать её в SQL-запросы.

Стабилизация

Тестирование решения

SimpleTest, phpUnit

phpUnit позволяет производить модульное тестирование (в том числе и тестирование работы с базами данных). phpUnit уже интегрирован в Zend Framework и позволяет выполнять модульное тестирование прямо из среды разработки Zend Studio.

Формирование технической документации

phpDocumentor

phpDocumentor обеспечивает генерацию документации на основе специально сформированных комментариев в исходном коде. Документация генерируется в виде паспортов функций и классов.

Внедрение

Площадка для внедрения

FreeBSD + Apache + PHP + MySQL

Данная конфигурация является конфигурацией сервера ВолгГТУ, который является платформой для организации информационной структуры университета.

Документация пользователя

MediaWiki

MediaWiki обеспечивает публикацию документации с возможностью её корректировки со стороны пользователей, что может привести к увеличению качества (понимания) документации.

Обзор технологии разработки

ZendFramework


Данный фреймворк реализован на языке PHP и включает в себя набор классов, которые реализуют наиболее часто используемые алгоритмы при разработке WEB-проектов. Данный фреймворк используется в комплекте со средой разработки Zend Studio, что является очень удобным средством разработки.

Рассмотрим данный фреймворк по указанным возможностям:

  1. Для обеспечения интернационализации существует два класса: Zend_Locale и Zend_Translate. Первый класс используется для локализации самого фреймворка и для определения языка клиента. Второй класс обеспечивает перевод статического текста из одного языка в другой при наличии файла-перевода, который может представлять собой файл следующих форматов: csv, ini, qt, gettext.

  2. Для генерации форм используется Zend_Form. Также есть возможность использовать встроенный JS-фреймворк Dojo для генерации форм с расширенным набором компонентов.

  3. Работа с БД осуществляется за счёт подмножества классов, имена которых начинаются с Zend_Db. Классы реализованы по принципу Active Record. Соединение с базой происходит не в момент создания объекта, а в момент посыла первого запроса (Управление отложенными соединениями). На данный момент только в адаптерах под Db2 и Oracle реализована поддержка устойчивых соединений (соединений, которые закрываются сразу после исполнения скрипта, а ждут определённого таймаута и только потом закрываются).

  4. Работа с сессиями осуществляется посредством класса Zend_Session. Данный класс может работать в связке с Zend_Auth, чтобы обеспечить систему работы с пользователями.

  5. В ZendFramework встроен JS-фреймворк Dojo (Zend_Dojo). Также есть возможность использовать jQuery (ZendX_JQuery).

ASP.NET MVC


Данный фреймворк является реализацией паттерна проектирования Модель-Представление-Контроллер на основе ASP.NET и является братом для ASP.NET WebForms. Разработка на данном фреймворке может вестись на следующих языках C# или Visual Basic. Разработка на данном фреймворке ведётся в среде Microsoft Visual Studio.

Рассмотрим данный фреймворк по указанным возможностям:

  1. Интернационализация достигается за счёт так называемых культур (CultureInfo). Перевод строк берётся из файлов ресурсов (*.resx), которые имеют определённый формат именования (более подробно на http://habrahabr.ru/blogs/aspnet_mvc/86331/, http://www.intuit.ru/department/internet/aspnetmvcframe/6/).

  2. В отличие от ASP.NET WebForms работа с формами происходит не в режиме конструктора форм, а в обычном окне редактора кода. Форма является отдельным представлением (View) в котором и формируется форма.

  3. Работа с БД производится через ADO.NET – набор классов, обеспечивающий уровень абстракции работы с различными СУБД. Быстродействие достигается за счёт отложенных соединений и кэшированием запросов. Также на данный момент имеет популярность технология LINQ.

  4. Работа с сессиями осуществляется через глобальную коллекцию Session (http://www.gotdotnet.ru/blogs/abasyuk/6536/). Для работы с пользователями в проекте по стандарту создаётся контроллер (AccountController) и модель для работы с пользователями (http://perebeg.blogspot.com/2010/02/aspnet-mvc_11.html).

  5. Специализированных классов работы с JS-фреймворками нет, но возможно прямое написание JS-кода в тексте представления (View).

Ruby on Rails


Особенностью данного фреймворка в том, что под него уже реализовано множество стандартных решений, которые можно брать за основу WEB-проектов. Язык Ruby славится своей оптимизированностью по сравнению с PHP – движок Ruby даёт большую производительность по сравнению с движком Zend (PHP).

Рассмотрим данный фреймворк по указанным возможностям:

  1. Интернационализация достигается за счёт хелпера представления (View) ActionView::Helpers::TranslationHelper, работает по аналогии как и в ZendFramework.

  2. Генерация форм производится за счёт хелпера представления ActionView::Helpers::FormHelper.

  3. Взаимодействие с БД производится через модели с использованием Active Record. При работе с базой используется принцип «Ленивая загрузка», при котором данные загружаются только тогда, когда это нужно (http://rubydev.ru/2010/09/active-record-ruby-on-rails-3/).

  4. Работа с сессиями производится через глобальную коллекцию session.

Специализированных классов работы с JS-фреймворками нет, но возможно прямое написание JS-кода в тексте представления (View).

Обзор средств разработки


Были рассмотрены следующие среды разработки:

  • NetBeans (Linux, Windows) [PHP, Ruby]

  • Eclipse (Linux, Windows) [PHP, Ruby]

  • Microsoft Visual Studio 2008 (Windows) [C#, VB]

  • Aptana (Linux, Windows) [Ruby]

Все перечисленные среды разработки имеют функцию автозавершения кода и подсветку синтаксиса языка. За исключением VS все остальные среды разработки в стандартной комплектации умеют работать с системой контроля версий (CVS, SVN).


Выбор технологии разработки


Критерий

Альтернативы

Результат

Обеспечение интернационализации сайта

ZendFramework (Zend_Translate),

ASP.NET MVC (Cultures),

Ruby on Rails (ActionView::Helpers::TranslationHelper)

ASP.NET MVC (Cultures) или Zend Framework – оба обладают удобством организации интернационализации за счёт реализованных в них классах.

Работа с формами

ZendFramework (Zend_Form),

ASP.NET MVC (Forms),

Ruby on Rails (ActionView::Helpers::FormHelper)

ZendFramework (Zend_Form) наиболее соответствует подходу ООП.

Работа с БД

ZendFramework (Zend_Db),

ASP.NET MVC (ADO.NET/LINQ),

Ruby on Rails (Active Record)

ASP.NET MVC (ADO.NET/LINQ) имеет более улучшенную скорость работы с БД по сравнению с другими альтернативами.

Работа с сессиями и пользователями

ZendFramework (Zend_Auth),

ASP.NET MVC (Session),

Ruby on Rails (Active Record)

ASP.NET MVC (Session) уже содержит реализованные компоненты по работе с пользователями.

Наличие встроенных JS-фреймворков

ZendFramework (Zend_Dojo, jQuery),

ASP.NET MVC (jQuery),

Ruby on Rails (jQuery)

ZendFramework (Zend_Dojo, jQuery) имеет наиболее удобный программный интерфейс для работы с JS-фреймворками.

Выбор среды разработки


Критерий

Альтернативы

Результат

Использование ZendFramework

Zend Studio

NetBeans

Eclipse

Zend Studio является наиболее оптимизированным вариантом, так как разрабатывалась именно под ZendFramework.

Использование ASP.NET MVC

Microsoft Visual Studio

Является единственным вариантом при разработке на ASP.NET MVC.

Использование Ruby on Rails

NetBeans

Aptana RadRails

Eclipse

Aptana RadRails - специальная редакция для разработки на Ruby on Rails, и является лучшим вариантом.

Состав и структура первого релиза программы



Выбор данных видов работ обусловлен тем, что это главные элементы ядра системы, без которых ее функционирование невозможно.

Список работ, их содержание и ответственные представлены в таблице ниже.


Вид работ

Описание

Ответственные

1. Настройка Zend приложения под модульную структуру




Горелов

2. Администраторская панель

Функции:

  1. Резервное копирование БД модулей

  2. Резервное копирование БД сайта

  3. Формирование списка ссылок на административные части установленных модулей

  4. Установка модуля
    Удаление модуля

Виноградов

3. СУ модулями

Функции:

  1. Получение списка доступных к установке модулей

  2. Получение списка установленных модулей

  3. Резервное копирование БД модулей

  4. Формирование списка ссылок на административные части установленных модулей

  5. Проверка целостности модуля (XML список файлов)

  6. Установка модуля

  7. Удаление модуля

  8. Обновление модуля

  9. Отключение модуля

  10. Включение модуля




Горелов

Киммель

5. СУ Пользователями и СУ Ролями

  1. Функции администрирования

    1. Активация аккаунта / учетной записи

    2. Управление ролями:

      1. создание роли;

      2. удаление роли;

      3. редактирование роли;

  2. Прикладные функции

    1. Создание учётной записи пользователя

    2. Вход в личный кабинет / авторизация

    3. Выход из личного кабинета




Пашаев

Виноградов


В первом релизе НЕ предусматривается реализация: СУ репозиторием, поисковой системы, модуля меню, модуля управления статичными страницами. Все эти модули и системы переносятся на более поздние релизы.

Состав и структура второго релиза


Вид работ

Описание(функции)

Ответственные

СУ Репозиторием







Модуль меню

  • Создание меню

  • Удаление меню

  • Редактирование меню

  • Создание пункта меню

  • Удаление пункта меню

  • Редактирование пункта меню

  • Просмотр список всех меню портала







Модуль управления статичными страницми

  • Создание новой страницы

  • Редактирование существующей страницы

  • Просмотр списка страниц портала

  • Удаление страницы портала






Ответственные должны определить количество заданий и количество людей, необходимых для их выполнения, а затем, посоветовавшись друг с другом, распределить задания между остальным участниками проекта.




Разработка концепции проекта


Веб-приложение «Магистерский портал», должно быть реализовано в виде модульного приложения, архитектура которого должна соответствовать архитектуре представленной в приложении А.


Лист согласования

Приложение А.

Архитектура системы




Рисунок А. 1. Диаграмма вариантов использования 1.


Рисунок А. 2. Диаграмма вариантов использования 2.




Рисунок А. 3. Диаграмма вариантов использования 3.


Рисунок А.4. Диаграмма компонентов системы.