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

advertisement
Федеральное агентство по образованию и науке Российской Федерации
ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра ПОАС
Курсовой проект по Технологиям Разработки ПО
Описание проекта
«Магистерский портал»
Исполнитель
Студент группы ПС-566
Горелов С.Н.
Нормоконтролёр
Руководитель
Зам. Зав. кафедры ПОАС
Жукова И.Г.
Волгоград
2010
Согласовано:
<___Горелов С.______________> _________________________
<___Пашаев С._______________> _________________________
<___Бастрыкин С.____________> _________________________
<___Виноградов А.___________> _________________________
<___Киммель С._____________> _________________________
<___Романенко Р.____________> _________________________
<___Щекин А._______________> _________________________
<___Потапов А.______________> _________________________
<___Мельникова М.__________> _________________________
<___Жорин С._______________> _________________________
<___Коновалов И.____________> _________________________
1
Содержание
Содержание .................................................................................................................. 2
Постановка задачи ....................................................................................................... 3
Описание модели требований .................................................................................... 4
Функциональная структура приложения .................................................................. 6
Выбор технологий реализации ................................................................................ 14
Состав и структура первого релиза программы ..................................................... 23
Состав и структура второго релиза ......................................................................... 25
Разработка концепции проекта ................................................................................ 26
Приложение А. .......................................................................................................... 29
2
Постановка задачи
Необходимо разработать веб-приложение «магистерский портал»,
позволяющее решать следующие задачи: осуществлять информационную
поддержку студентов и преподавателей; осуществлять хранение магистерских
работ в репозитории документов; предоставлять пользователям интерфейс для
управления проектами, аналогичный MS Project.
3
Описание модели требований
На «Магистерском портале» должно происходить общение студентов и
преподавателей в рамках учебного процесса, а так же осуществляться контроль
выполнения дипломных и прочих работ.
Должно быть предусмотрено два типа зарегистрированных
пользователей: студент и преподаватель. Каждый зарегистрированный
пользователь портала должен иметь личный кабинет.
Студенты должны иметь возможность выкладывать на портале главы
своих работ. В ходе выполнения студентом работы преподаватели должны
иметь возможность оставлять замечания по выложенным главам.
Общение зарегистрированных пользователей должно осуществляться
посредством личных сообщений.
Личный кабинет представляет собой «рабочее место» пользователя.
Пользователь в личном кабинете должен иметь возможность:
1) Получать и отправлять личные сообщения другим пользователям;
2) Получать и назначать задания другим пользователям;
3) Добавлять/удалять пользователей в/из списка контактов;
4) Работы с системой управления проектами;
5) Выкладывать опубликованные работы;
6) Назначать/Записываться на консультации;
7) Ознакомиться со своим расписанием учебных занятий.
Поиск добавляемых пользователей в список контактов должен происходить
по ФИО.
«Магистерский портал» должен содержать новостные ленты двух типов:
«новостная лента от кафедры» (отображаются в личном кабинете) и «общие
новости».
4
На портале должна быть предусмотрена страница «Конференции», на
которой должна быть размещена информация о конференциях, которые
пройдут в ближайшем будущем.
Портал должен выполнять информативную функцию о магистратуре,
которая заключается в выдаче новостей, размещении документов и иных
информационных материалов.
5
Функциональная структура приложения
Разделим весь функционал сайта на пять частей:
- менеджер задач;
- репозиторий;
- информационное обеспечение и элементы социальной сети;
- функции администратора / системные функции;
На второй релиз нам нужно будет сделать:
1. репозиторий
2. система управления меню
3. система управления страницами
С этим минимумом, мы получим прошлогодний портал.
Функции администратора / системные функции:
№
Функция
Вход
Выход
Описание
1.
Получение списка
СУ модулями
доступных к
просматривает папки,
установке
в которых должны
модулей
находиться модули,
считывает
информацию об
имеющихся модулях и
формирует список
модулей, которые
администратор может
установить.
2.
Получение списка
СУ модулями
6
установленных
просматривает БД и
модулей
возвращает список
установленных /
функционирующих
модулей.
3.
Резервное
копирование БД
модулей
4.
5.
Резервное
Средствами СУБД
копирование БД
создается резервная
сайта
копия БД.
Формирование
проверка модуля на
списка ссылок на
наличие в БД
административные
установленных
части
модулей;
установленных
модулей
6.
Проверка
СУ модулями
целостности
проверяет -
модуля (XML
существуют ли все
список файлов)
необходимые файлы
(задаются XML
файлом в папке
модуля) для
нормального
функционирования
модуля и возвращает
результат проверки.
7
7.
Установка модуля
СУ модулями создает
запись в БД о модуле,
данный модуль
считается
установленным и он
может нормально
функционировать.
8.
Удаление модуля
СУ модулями удаляет
запись из БД об этом
модуле, он считается
удаленным и не может
функционировать.
9.
Обновление
Администратор
модуля
указывает папку, в
которой содержится
более новая версия
модуля, после чего из
указанной папки
копируются
необходимые файлы.
10. Отключение
СУ модулями делает в
модуля
БД отметку о том, что
данный модуль
считается
установленным, но он
не функционирует.
11. Включение
СУ модулями делает в
модуля
БД отметку о том, что
данный модуль
8
считается
установленным и он
функционирует.
12. Активация
СУ пользователями
аккаунта / учетной
делает в БД отметку о
записи
том, что данная запись
считается
активированной.
13. Просмотр списка
пользователей
СУ пользователями
просматривает записи
из БД о пользователях,
и формирует список
пользователей.
14. Создание учётной
СУ пользователями
записи
добавляет запись о
пользователя
пользователе в БД.
15. Удаление учётной
СУ пользователями
записи
удаляет запись о
пользователя
пользователе из БД.
16. Изменение
СУ пользователями
данных
изменяет данные
пользователя
пользователя в БД.
17. Создание роли
СУ ролями создает
запись о роли в БД.
18. Удаление роли
СУ ролями удаляет
запись о роли из БД.
19. Редактирование
роли
20. Просмотр списка
СУ ролями изменяет
данные о роли в БД.
СУ ролями
9
существующих
просматривает записи
ролей
из БД о ролях, и
формирует список
ролей.
Информационное обеспечение и элементы социальной сети:
№
Функция
Вход
1. Вход в личный Пользователь Х
Выход
Описание
Пользователь Х
До авторизации
авторизован
любой
кабинет /
не авторизован,
авторизация
логин и пароль
пользователь на
пользователя
сайте считается
гостем и имеет
очень скромные
функциональные
возможности.
Авторизовавшись
пользователь
получит доступ к
личному кабинету
и тот функционал,
которые доступен
ролям данного
пользователя.
Авторизация
происходит путем
ввода
регистрационных
данных в форму
10
авторизации на
сайте.
2. Выход из
личного
Пользователь Х
Пользователь Х не
Завершая работу с
авторизован
авторизован
сайтом,
кабинета
пользователь
может "выйти" из
системы, перейдя
по
соответствующей
ссылке (или не
обращаться к
серверу в течение
определенного
времени,
необходимого для
разрыва "сессии")
и стать вновь
неавторизованным
пользователем.
3. Просмотр
?
?
Перейдя по
контактной
соответствующей
информации
ссылке
пользователя
пользователь
попадает на
страницу с
контактной
информацией
другого
пользователя.
Контактную
11
информацию
могут
просматривать как
авторизованные
пользователи, так
и гости
(неавторизованные
).
4. Редактировани Контактная
Измененная
Каждый
е контактной
информация
контактная
авторизованный
информации
пользователя Х
информация
пользователь
пользователя Х
может изменить
пользователя
_свои_ контактные
данные, заполнив
соответствующие
поля на странице
редактирования
профиля.
5. Регистрация
пользователя
Гость,
Зарегистрированны Перейдя по
регистрационны й пользователь
соответствующей
е данные
ссылке гость
попадает на
страницу
регистрации, где в
форме указывает
свои данные
(логин/пароль/email). На
указанный
почтовый ящик
12
будет выслано
письмо с кодом
для подтверждения
учетной записи.
6. Восстановлени
е пароля
13
Выбор технологий реализации
14
Фаза
Требования
Планирование Формирование
сводного плана
Альтернативы
Результат
MS Project, MS
MS Project покрывает своей функциональностью все
Visio
поставленные требования и имеет набор функций, которые
и календарного
ускоряют работу.
графика
Функциональная Dia, StarUML,
Dia является развивающимся и свободно распространяющимся
спецификация
MS Visio
продуктом в отличии от его конкурентов.
Технология
ASP.NET, Zend
Zend Framework является технологией на базе которой можно
разработки
Framework,
будет внедрить решение в информационную среду заказчика.
Ruby & Rails
Технология покрывает все функциональные требования или
проекта
Разработка
обеспечивает базис для их реализации.
Среда
Zend Studio,
Zend Studio наиболее проста в развёртывании на рабочем месте
разработки
Eclipse,
программиста. Также она обладает функциями, которые могут
NetBeans,
облегчить разработку кода (автодополнение кода, генерация
Aptana
кода, рефакторинг) и отладку решения.
CVS, SVN, Git
SVN наиболее устоявшаяся технология контроля версий с
Контроль
версий
централизованным хранилищем. Использование Git вызвало бы
исходных ходов
разрозненность в исходных кодах из-за отсутствия постоянного
15
доступа в интернет участников разработки.
Формирование
MySQL
MySQL Workbench является специализированным продуктом по
структуры базы
Workbench, MS
разработке структуры БД и позволяет переносить построенную
данных
Visio
структуру на сервер БД. Visio может только визуализировать
структуру, но не экспортировать её в SQL-запросы.
Стабилизация Тестирование
решения
SimpleTest,
phpUnit позволяет производить модульное тестирование (в том
phpUnit
числе и тестирование работы с базами данных). phpUnit уже
интегрирован в Zend Framework и позволяет выполнять
модульное тестирование прямо из среды разработки Zend Studio.
Формирование
Внедрение
phpDocumentor
phpDocumentor обеспечивает генерацию документации на основе
технической
специально сформированных комментариев в исходном коде.
документации
Документация генерируется в виде паспортов функций и классов.
Площадка для
FreeBSD +
Данная конфигурация является конфигурацией сервера ВолгГТУ,
внедрения
Apache + PHP +
который является платформой для организации информационной
MySQL
структуры университета.
MediaWiki
MediaWiki обеспечивает публикацию документации с
Документация
пользователя
возможностью её корректировки со стороны пользователей, что
может привести к увеличению качества (понимания)
документации.
16
Обзор технологии разработки
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, чтобы обеспечить
систему работы с пользователями.
17
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).
18
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]
19
Все перечисленные среды разработки имеют функцию автозавершения
кода и подсветку синтаксиса языка. За исключением VS все остальные среды
разработки в стандартной комплектации умеют работать с системой контроля
версий (CVS, SVN).
20
Выбор технологии разработки
Критерий
Альтернативы
Результат
Обеспечение интернационализации
ZendFramework (Zend_Translate),
ASP.NET MVC (Cultures) или Zend
сайта
ASP.NET MVC (Cultures),
Framework – оба обладают
Ruby on Rails
удобством организации
(ActionView::Helpers::TranslationHelper)
интернационализации за счёт
реализованных в них классах.
Работа с формами
ZendFramework (Zend_Form),
ZendFramework (Zend_Form)
ASP.NET MVC (Forms),
наиболее соответствует подходу
Ruby on Rails
ООП.
(ActionView::Helpers::FormHelper)
Работа с БД
ZendFramework (Zend_Db),
ASP.NET MVC (ADO.NET/LINQ)
ASP.NET MVC (ADO.NET/LINQ),
имеет более улучшенную скорость
Ruby on Rails (Active Record)
работы с БД по сравнению с
другими альтернативами.
Работа с сессиями и пользователями ZendFramework (Zend_Auth),
ASP.NET MVC (Session) уже
ASP.NET MVC (Session),
содержит реализованные
Ruby on Rails (Active Record)
компоненты по работе с
пользователями.
21
Наличие встроенных JS-
ZendFramework (Zend_Dojo, jQuery),
ZendFramework (Zend_Dojo,
фреймворков
ASP.NET MVC (jQuery),
jQuery) имеет наиболее удобный
Ruby on Rails (jQuery)
программный интерфейс для
работы с JS-фреймворками.
Выбор среды разработки
Критерий
Альтернативы
Результат
Использование ZendFramework
Zend Studio
Zend Studio является наиболее
NetBeans
оптимизированным вариантом, так
Eclipse
как разрабатывалась именно под
ZendFramework.
Использование ASP.NET MVC
Microsoft Visual Studio
Является единственным вариантом
при разработке на ASP.NET MVC.
Использование Ruby on Rails
NetBeans
Aptana RadRails - специальная
Aptana RadRails
редакция для разработки на Ruby
Eclipse
on Rails, и является лучшим
вариантом.
22
Состав и структура первого релиза программы
Выбор данных видов работ обусловлен тем, что это главные элементы ядра
системы, без которых ее функционирование невозможно.
Список работ, их содержание и ответственные представлены в таблице
ниже.
Вид работ
Описание
Ответственны
е
1. Настройка Zend
приложения
Горелов
под
модульную
структуру
2.
Администраторская
панель
Функции:
Виноградов
1. Резервное копирование БД
модулей
2. Резервное копирование БД сайта
3. Формирование списка ссылок на
административные части
установленных модулей
4. Установка модуля
Удаление модуля
3. СУ модулями
Функции:
1. Получение списка доступных к
Горелов
Киммель
установке модулей
2. Получение списка установленных
модулей
3. Резервное копирование БД
модулей
4. Формирование списка ссылок на
административные части
23
установленных модулей
5. Проверка целостности модуля
(XML список файлов)
6. Установка модуля
7. Удаление модуля
8. Обновление модуля
9. Отключение модуля
10.Включение модуля
5.
СУ
Пользователями
СУ Ролями
1. Функции
и администрирования
Пашаев
Виноградов
1. Активация аккаунта / учетной
записи
2. Управление ролями:
1. создание роли;
2. удаление роли;
3. редактирование роли;
2. Прикладные функции
1. Создание учётной записи
пользователя
2. Вход в личный кабинет /
авторизация
3. Выход из личного
кабинета
В первом релизе НЕ предусматривается реализация: СУ репозиторием,
поисковой системы, модуля меню, модуля управления статичными страницами.
Все эти модули и системы переносятся на более поздние релизы.
24
Состав и структура второго релиза
Вид работ
Описание(функции)
Ответственные
СУ Репозиторием
Модуль меню
 Создание меню
 Удаление меню
 Редактирование меню
 Создание пункта меню
 Удаление пункта меню
 Редактирование пункта меню
 Просмотр список всех меню
портала
Модуль управления
 Создание новой страницы
статичными
 Редактирование существующей
страницми
страницы
 Просмотр списка страниц
портала
 Удаление страницы портала
Ответственные должны определить количество заданий и количество
людей, необходимых для их выполнения, а затем, посоветовавшись друг с
другом, распределить задания между остальным участниками проекта.
25
Разработка концепции проекта
Веб-приложение «Магистерский портал», должно быть реализовано в виде
модульного приложения, архитектура которого должна соответствовать
архитектуре представленной в приложении А.
26
27
Лист согласования
28
Приложение А.
Архитектура системы
29
30
Рисунок А. 1. Диаграмма вариантов использования 1.
31
Рисунок А. 2. Диаграмма вариантов использования 2.
32
Рисунок А. 3. Диаграмма вариантов использования 3.
33
Рисунок А.4. Диаграмма компонентов системы.
34
Download