Программный комплекс сравнительной многокритериальной оценки вузов по векторам прогрессивности
Разработка программного комплекса для сравнительной многокритериальной оценки вузов по выбранным критериям, рассчитанной по методу векторов прогрессивности. Схема алгоритма оценки проектных решений. Логическая структура базы данных, платформа реализации.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 08.10.2018 |
Размер файла | 4,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Пункт меню «Изменить»
Пункт меню «Изменить» позволяет администратору изменить данные, которые были введены ранее (рисунок 14). Введенные данные о вузах, критериях и их значениях можно не только изменять, но и удалять их и добавлять (рисунок 15).
Рисунок 14 - Изменение данных
Рисунок 15 - Добавление даннях
Рисунок 16 - Добавление нового пользователя
Страница авторизации пользователя (участника).
На этой странице пользователь входит в свой личный кабинет под своим логином и паролем (Рисунок 17).
Рисунок 17 - Авторизация в системе
программный многокритериальный оценка прогрессивность
Главное меню «Система оценки сравнительной прогрессивности ведущих университетов РФ»
Главное меню позволяет пользователю посмотреть название вузов, название критериев и оценку по данному критерию. Так же, в главном меню имеются кнопки для расчет векторов прогрессивности, расчета эффектиности вузов, отбор вуза и отбор критериев. (рисунок 18).
Рисунок 18 - Главное меню
Пункт меню «Выбор критерия».
Данный пункт меню позволяет пользователю выбрать критерии для расчета векторов прогрессивности и эффективности вузов. Эффективность вузов рассчитывается по заданным критериям с применением векторов прогрессивности (рисунок 19).
Рисунок 19 - Главное меню
7. Пункт меню «Отбор вуза».
В этом пункте отображается список вузов с флагами выбора для расчета векторов прогрессивности (рисунок 20).
Рисунок 20 - Отбор вуза
8. Эффективность вузов по Парето.
В этом пункте отображается эффективность вузов в виде таблицы и щелкнув по выбранному критерию, участник видит выбранные им критерии и вузы, которые стали отсортированы по критериям (рисунок 21).
Рисунок 21 - Эффективность вузов по Парето
3.5 Диаграмма компонентов
Диаграмма компонентов (component diagram) - диаграмма, на которой изображены типы компонентов и зависимости между ними.
Компонент реализованной системы - это относительно независимая функциональная часть системы, которая выполняет самостоятельную функцию, и обычно реализуются в виде отдельного файла или определения.
Основными графическими элементами диаграммы компонентов являются компоненты, интерфейсы и зависимости между ними.
Компонентами являются программные модули, в том числе библиотечные модули и стандартные программные системы (операционные системы, СУБД), а также файлы документации и таблицы базы данных.
Отношение зависимости на диаграмме компонентов изображается пунктирной линией со стрелкой, направленной от клиента или зависимого элемента к источнику или независимому элементу модели.[11]
Диаграмма компонентов разработанного комплекса приведена на рисунке 22, она отражает основные компоненты комплекса и связи между ними.
Рисунок 22 - Диаграмма компонентов.
В таблице 10 дано краткое описание основных компонентов системы.
Таблица 10 - Основные классы системы
Класс |
Описание |
|
Login.java |
Страница авторизации пользователя |
|
SecurityModel.java |
Присвоение ролей пользователю |
|
RaitingHelper.java |
Расчет векторов прогрессивности |
|
Hibernate |
Расчет эффективности вузов |
|
Criterion.java |
Класс для работы со справочником критериев |
|
User.java |
Класс для работы со справочником пользователей |
|
University.java |
Класс для работы со справочником университетов |
|
Value.java |
Класс для работы со справочником оценки по критерию |
3.6 Диаграмма развёртывания
Диаграмма развёртывания - это завершающая диаграмма технологии UML. Она показывает общее развертывание компонентов системы на технических узлах системы. Узлы представляются как прямоугольные параллелепипеды с артефактами, расположенными в них, изображенными в виде прямоугольников. Узлы могут иметь подузлы, которые представляются как вложенные прямоугольные параллелепипеды. Один узел диаграммы развертывания может концептуально представлять множество физических узлов, таких как кластер серверов баз данных [12].
Существует два типа узлов:
Узел устройства
Узел среды выполнения
Узлы устройств -- это физические вычислительные ресурсы со своей памятью и сервисами для выполнения программного обеспечения, такие как обычные ПК, мобильные телефоны. Узел среды выполнения -- это программный вычислительный ресурс, который работает внутри внешнего узла и который предоставляет собой сервис, выполняющий другие исполняемые программные элементы.
Диаграмма развертывания разработанной системы представлена на рисунке 23.
Рисунок 23 - Диаграмма развертывания
Данный программный комплекс работает с СУБД PostgreSQL прямо из браузера. СУБД PostgreSQL также отлично подходит для работы с web - приложениями. Исходя из этих двух фактов, была выбрана именно эта СУБД.
3.7 Программа и методика испытаний
Программа и методика испытаний содержит требования, подлежащие проверке при испытании программы, а также порядок и методы их контроля, и оформлена в соответствии с ГОСТ 19.301-79 [12].
Объект испытаний.
Объектом испытаний является многокритериальная сравнительная оценка вузов по векторам прогрессивности.
Целью испытаний является многокритериальная оценка вузов по векторам прогрессивности, с выведением рейтинга.
Функциональные требования к системе, изложенные в техническом задании и подлежащие проверке:
Акторы, взаимодействующие с системой: участник, администратор.
Авторизация и разграничение прав пользователей в системе.
Ведение справочников:
справочник критерий;
справочник вузов;
справочник оценки по критерию.
Расчет для вузов:
векторов прогрессивности;
эффективности;
"минимальных" векторов прогрессивности.
Основные положения.
Программная документация состоит из:
технического задания;
программы и методики испытаний;
пояснительной записки;
руководства пользователя.
Объем испытаний.
Испытания проводятся в два этапа:
проверка комплектности программной документации;
испытание программного комплекса по методике испытаний на соответствие функциональным требованиям.
Средства и порядок испытаний.
В состав технических средств для проведения испытаний должен входить персональный компьютер со следующими характеристиками:
процессор класса Pentium с тактовой частотой 1 ГГц и выше;
объем оперативной памяти не менее 2 Гб;
наличие web-браузера.
Испытания проводиться в следующей последовательности:
Проверка функции авторизации пользователя.
Проверка функциональных возможностей администратора.
Проверка функциональных возможностей участника.
Условия проведения испытаний.
температура окружающего воздуха, С° - от 20 до 25;
относительная влажность, % - от 30 до 80;
атмосферное давление, кПа - от 84 до 106;
частота питающей электросети, Гц - 50;
напряжение питающей сети переменного тока, В - 220.
Методика испытаний.
Для проведения испытаний этого нужно запустить web-браузер.
Проверка возможности авторизации пользователя.
Действия:
Открыть браузер. В строке адреса прописать «localhost:8080» и
нажать Enter.
Выбрать пользователя, под которым необходимо войти в систему.
Ввести логин и пароль. Нажать кнопку «Войти».
Результат:
На экране отображается главная страница для пользователя, который вошел в системы, если авторизация прошла успешно. В случае ошибки система выдаст сообщение о вводе неправильного логина или пароля.
Проверка возможности расчета эффективности вузов.
Действия:
Открыть браузер. Ввести в строку адреса «localhost:8080/user» и
войти в систему под логином, который был получен при регистрации.
На панели меню выбрать пункт «Выбрать критерии».
Выбрать критерии, которые нужны для расчета эффективности или выбрать все критерии разом.
На панели меню выбрать пункт «Расчет эффективности вузов».
Результат:
Система выдаст окно рассчитанной эффективности вузов в таблице.
Проверка возможности расчета векторов прогрессивности.
Действия:
Открыть браузер. В строке адреса прописать «localhost:8080/user»
и нажать кнопку Enter.
Войти в систему под своим логином.
Выбрать критерии для расчета векторов.
Выбрать вуз для расчета векторов.
На панели меню выбрать пункт «Расчет векторов прогрессивности».
Результат:
На странице отображается таблица, в которой показаны вузы и критерии, отображается эффективность вузов и значение по векторам прогрессивности.
Проверка возможности ведения справочников (на примере справочника
вузов).
Действия:
Открыть браузер. В строке прописать «localhost:8080/admin»
Пройти авторизацию.
На панели меню выбрать пункт «Университеты».
Выбрать пункт меню «Добавить».
Результат:
На странице отображается страница для ввода нового университета с возможностью редактирования и удаления.
3.6 Контрольный пример
Для демонстрации работы ПК было проведено ее тестирование по методике испытаний, описанной в п. 3.7. Ниже дано описание контрольного примера.
На стороне клиента система открывается через открытие web_браузера, ввода в строке адреса «localhost/8080» и нажатия кнопки Enter. После чего появляется стартовая страница, которая представлена на рисунке 24.
1. Страница авторизации участника.
На этой странице пользователь входит в свой личный кабинет под своим логином и паролем (рисунок 24).
Рисунок 24 - Авторизация в системе
Пункт меню «Выбор критериев» позволяет пользователю выбрать критерии для расчета. Векторы прогрессивности и эффективность вузов рассчитывается по заданным критериям (рисунок 25).
Рисунок 25- Выбор критериев
Для того, чтобы рассчитать векторы прогрессивности, участнику нужно поставить галочки перед теми критериями, которые ему важны при расчете. Либо нажать на кнопочку выбрать все и вернуться в главное меню (рисунок 26).
Рисунок 26 - Главное меню с выбранными критериями
Затем выбрать пункт меню «Отбор вуза». Участнику нужно поставить галочку перед тем вузом, для которого он хочет рассчитать векторы прогрессивности (рисунок 27).
Рисунок 27 - Отбор вуза
Далее выбрать кнопку «Расчет векторов прогрессивности». Цветом выделяется тот вуз, который вы выбрали для расчета. Щелкнув по ней, вы увидите перед собой таблицу с распределенными векторам прогрессивности и списком неэффективных вузов (рисунок 28). Можно также просмотреть «Расчет "минимальных" векторов прогрессивности» (рисунок 29).
Рисунок 28 - Расчет векторов прогрессивности
Рисунок 29 - Расчет "минимальных" векторов прогрессивности
3.7 Руководство программиста
Руководство программиста относится к эксплуатационно-технической документации и требуется в тех случаях, когда система тем или иным образом предоставляет возможность написания, редактирования или использования программного кода. Основная задача документа состоит в том, чтобы обеспечить оператору возможность выполнять свои обязанности в отношении системы (в состав которой входит программа) или каких-либо ее частей
Структура руководства программиста, зафиксированная в ГОСТ 19.504-79, такова:
Назначение и условия применения программы;
Характеристика программы;
Обращение к программе;
Входные и выходные данные;
Сообщения.
Полный текст руководства пользователя для разработанного программного комплекса представлен в приложении А.
3.8 Руководство оператора
Руководство оператора -- документ, назначение которого -- предоставить людям помощь в использовании некоторого программного комплекса. Документ входит в состав технической документации на ПК и, как правило, подготавливается техническим писателем.
Типовая структура руководства оператора приведена в ГОСТ 19.505-79.
Назначение программ;
Условия выполнения программы;
Выполнение программы;
Сообщения оператору.
Полный текст руководства пользователя для разработанного программного комплекса представлен в приложении Б.
4. ВНЕДРЕНИЕ И АНАЛИЗ ЭФФЕКТИВНОСТИ
4.1 Описание объекта внедрения
Программный комплекс многокритериальной сравнительной оценки вузов по векторам прогрессивности разрабатывался в соответствии с требованиями технического задания.
В техническом задании были обозначены следующие функции:
авторизация пользователя;
ведение справочной информации;
расчет эффективности вузов;
расчет векторов прогрессивности;
расчет «минимальных» векторов прогрессивности.
Программный комплекс спроектирована по методологии UML и реализована на языке программирования Java с помощью сервера приложений - Tomcat, в среде разработки - Idea. В качестве СУДБ был использован PostgreSQL.
4.2 Описание хода предполагаемого внедрения
Внедрение комплекса предполагается для любой организации заинтересованной в расчете рейтинга. Режим открытой эксплуатации. В ходе тестирования были выполнены все основные функции ПК.
Для эксплуатации системы должны быть выделены ресурсы:
Должен быть проведен инструктаж по использованию программного комплекса.
Согласно приведенным расчётам требуемых ресурсов внешней и оперативной памяти, для работы с разработанной ПК рекомендуются компьютер со следующими системными характеристиками: оперативная память - 4400 Мб; Windows Pentium 4 и более; процессор с тактовой частотой 1000 МГц и выше.
На компьютере должны быть установлены следующие компоненты: OC Windows 7; Браузер.
5. ОРГАНИЗАЦИОННАЯ ДЕЯТЕЛЬНОСТЬ
5.1 Наиболее значимые профессиональные сертификаты
За период обучения на факультете информационных систем и технологий, помимо основного курса обучения были пройдены курсы:
В 2014 году прошла обучение на водителя категории B,B1. получила водительское удостоверение.
В 2015 году был пройден курс: «Наращивание ресниц». Имеется сертификат, выданный частным образовательным учреждением «Glory Lashes».
Осенью 2015 году был пройден курс: «Like Business 3.0». Имеется сертификат, выданный частным образовательным учреждением «Like Corp.».
5.2 Перечень публикаций
Статья в сборнике Международной научно-технической конференции "Перспективные информационные технологии ПИТ-2015г" на тему: «Программный комплекс многокритериальной оценки социально-экономических систем», заочный тур г. Самара, СГАУ;
Статья в сборнике Международной научно-практической конференции "Новые задачи технических наук и пути их решения" на тему: «Разработка мобильного приложения для хранения уникальных данных» заочный тур г. Челябинск;
Статья в сборнике Международной научно-практической конференции "Прорывные научные исследования как двигатель науки" на тему: «Программный комплекс для хранения уникальных данных» заочный тур г. Тула;
5.3 Перечень участия в конференциях
Диплом за 2 место в Международной конференции «Развитие творческого потенциала студентов и школьников в коллективно формируемой единой образовательной среде одаренной молодежи» «Творческий потенциал» в подсекции «третий курс», Самара,18-20 ноября 2014;
5.4 Перечень выполненных в период обучения курсовых проектов и работ
В таблице 11 представлен перечень курсовых работ и проектов выполненных мною за период обучения.
Таблица 11 - Перечень курсовых работ и проектов
Курс |
Семестр |
Дисциплина |
Тема |
|
1 |
Осенний семестр 2012 года |
Введение в специальность и научных исследований |
Исследование каналов поступления информации у современной молодежи |
|
1 |
Весенний семестр 2013 года |
Информационный поиск и систематизация знаний |
Анализ способов сбора информации о посетителях сайта и их реализация |
|
1 |
Весенний семестр 2013 года |
Операционные системы |
Демонстрация многопоточности с критериальной оценкой |
|
2 |
Осенний семестр |
Обработка и анализ экспериментальных данных |
Создание консольного клиента для отправки email с помощью протокола smtp на с++ |
|
2 |
Осенний семестр 2013 года |
Информационные технологии |
Синтез конечных автоматов для заданной грамматики |
|
2 |
Весенний семестр 2014 года |
Технология программирования |
Организация работы над графиками |
|
2 |
Весенний семестр 2014 года |
Моделирование и исследование с использованием прикладных программ |
Искусственный интеллект для игры в большие «крестики - нолики» |
|
3 |
Осенний семестр 2014 года |
Моделирование и исследование с разработкой программных продуктов |
ИС принятия решения в играх 2-х лиц в игре с 0 суммой |
|
3 |
Весенний семестр 2015 года |
Моделирование и исследование с использованием прикладных программ |
ИС принятия решения в играх 2-х с противоположным результатом |
|
3 |
Весенний семестр 2015 года |
Проектирование интерфейсов |
Система для вывода сводных отчетов успеваемости студентов |
|
4 |
Осенний семестр 2015 года |
Разработка исследовательских ИС |
Программный комплекс многокритериальной оценки социально - экономических систем |
|
4 |
Осенний семестр 2015 года |
Корпоративные ИС |
Автоматизированная информационная система отдела кадров |
|
4 |
Весенний семестр 2016 года |
Реализация исследовательских ИС |
Программный комплекс сравнительной многокритериальной оценки вузов по векторам прогрессивности |
|
4 |
Весенний семестр 2015 года |
Методы и средства проектирования ИС |
Программный комплекс сравнительной многокритериальной оценки вузов по векторам прогрессивности |
5.5 Портфолио
Ф.И.О: Федорова Анастасия Геннадьевна, 04.07.1995г.
Год поступления: 2012 год,
Год окончания:2016 год
E-mail: nastusha_fedorova1@mail.ru
В таблице 12 представлены наиболее значимые достижения, также приложены дипломы и сертификаты (приложение В).
Таблица 12 - Наиболее значимые достижения
Номер |
Достижения |
Область |
|
1 |
Постоянное участие в СТЭМе "Фисташки" |
Культура |
|
2 |
4 место в вузовском Фестивале СТЭМов "Микрофон ваш-2012г" |
Культура |
|
3 |
Подготовка программы выступления "СтудВесна-2013" |
Культура |
|
4 |
Участие в "Игровом марафоне 2013" в составе команды СГАСУ. Призовое 3 место. |
Общественная деятельность |
|
5 |
27 Студенческая научная конференция СГАСУ. |
Наука |
|
6 |
Участие во флеш-мобе ко Дню Рождения университета |
Общественная деятельность |
|
7 |
Приняла участие в организации ПОВОЛЖСКОЙ КОНФЕРЕНЦИИ "ТВОРЧЕСКИЙ ПОТЕНЦИАЛ-2013" |
Общественная деятельность |
|
8 |
Свидетельство о прохождении бизнес - курса "Like Бизнес 3.0 " 2015г. |
Наука |
|
9 |
Участие в "Кросс Наций" |
Спорт |
|
10 |
Участвовала в параде на площади Куйбышева, посвященном "70-летию Суворовских училищ" в составе Молодежного парламента Самарской губернии |
Общественная деятельность |
|
11 |
Отправила работу на конференцию "ПИТ-2015" |
Наука |
|
12 |
Постоянное участие в СТЭМе ФИСТ |
Культура |
|
13 |
Благодарность за участие в Городском смотре-конкурсе музыкальных школ. |
Культура |
|
14 |
Награждена дипломом за участие в подготовке и проведении Парада Памяти. |
Общественная деятельность |
|
15 |
Помощь в организации Международной конференции"Творческий потенциал-2014". |
Наука |
|
16 |
Доклад на Международной конференции"Творческий потенциал-2014". |
Наука |
|
17 |
Получила права категории B,B1 |
Общественная деятельность |
|
18 |
Диплом за 2-е место в Международной конференции"Творческий потенциал-2014". |
Наука |
|
19 |
Получен сертификат участника Международной научно-практической конференции "Новые задачи технических наук и пути их решения"г. Челябинск, 10 декабря 2015 |
Наука |
|
20 |
Гран - При в областном конкурсе музыкальных школ. |
Наука |
|
21 |
Участие в студенческой научной конференции, в секции "Информационные системы и технологии" |
Наука |
|
22 |
Публикация статьи в сборнике (на базе РИНЦ) Международной научно-практической конференции "Прорывные научные исследования как двигатель науки" г. Тула; |
Наука |
ЗАКЛЮЧЕНИЕ
В соответствии с заданием на дипломную работу разработан программный комплекс сравнительной многокритериальной оценки вузов по векторам прогрессивности.
Были изучены существующие методики оценивания, проведен анализ аналогичных работ, описана организационная структура комплекса оценивания.
Разработана функциональная структура программного комплекса сравнительной многокритериальной оценки.
В ходе работы были сформулированы требования к техническому обеспечению и обоснован выбор средств автоматизации. Исходя из обоснования выбора средств разработки, ПК разрабатывался на языке Java с использованием фреймворка Idea и СУБД PostgreSQL для хранения данных и постоянно дорабатывалась. Работает под управлением операционных систем Microsoft Windows (XP и версии выше). Программный продукт представляет собой программный комплекс обработки данных с клиент - серверной архитектурой, выполняющую математические функции.
Проект программного комплекса сравнительной многокритериальной оценки вузов составлен по методологии UML. Спроектирована логическая структура БД инструментальными средствами ERWin 4.0, со всеми необходимыми сущностями и атрибутами.
Произведен выбор и обоснование комплекса технических средств, сопровождаемый ресурсным анализом (требуемый объем оперативной и внешней памяти, время реакции системы).
Разработанный программный комплекс отвечает всем поставленным целям и задачам, описанным и в техническом задании на выпускную квалификационную работу.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Мониторинг вузов. [Электронный ресурс]: URL: http://www.indicators.miccedu.ru/monitoring
2. Министерство образования и науки РФ. [Электронный ресурс]: URL: http://минобрнауки.рф
3. Российский индекс научного цитирования. [Электронный ресурс]: URL: http://elibrary.pro/rinc-i-indeksy.html
4. Пиявский С.А. Онтология проектирования. Прогрессивность многокритериальных альтернатив//научный журнал. -- 2013. -- №10. -- С. 53-59
5. Рейтинговое агентство Експерт РА. [Электронный ресурс]: URL: http://raexpert.ru
6. РИА рейтинг. [Электронный ресурс]: URL: http://riarating.ru/banks_ratings
7. Дерябкин, В.П. Проектирование информационных систем по методологии UML[Текст]: метод. указания к уч.-лаборат. практикуму. /В.П.Дерябкин, В.В.Козлов; Самарск.гос.арх.строит.ун-т. - Самара, 2008.-42с.
8. ГОСТ 24.702-1985 Единая система стандартов автоматизированных систем управления. Эффективность АСУ. Основные положения [Текст]. - М.: Издательство стандартов, 1990. - 32 с.
9. Справочник по Java. [Электронный ресурс]: URL: http://www.darkraha.com/rus/java
10. ГОСТ РВ 29.05.007-1996 Система стандартов эргономических требований и эргономического обоснования. Интерфейс человеко-машинный. Общие эргономические требования [Текст]. - М.: Издательство стандартов, 1996. - 21 с.
11. ГОСТ РВ 51987-2002. Комплекс стандартов на автоматизированные системы. Типовые требования и показатели качества функционирования информационных систем [Текст]. - М.: Издательство стандартов, 2002. - 37 с.
12. ГОСТ 19781-1990 Обеспечение систем обработки информации программное. Термины и определения [Текст]. - М.: Издательство стандартов, 1990. - 29 с.
ПРИЛОЖЕНИЕ А
Руководство программиста
А.1 Назначение и условия применения программ
Программа предназначена для оценки экспертами загруженных проектов, на основе трех тестов. Она применяется для автоматизации обработки результатов оценки, а также для накопления данных при работе нескольких экспертов.
Минимальные требования к системе:
процессор класса Pentium с тактовой частотой 1,6 ГГц и выше;
объем оперативной памяти не менее 4 Гб;
любая ОС (для примера требования написаны для ОС Windows 7);
манипулятор типа «мышь»;
монитор с разрешением 1280x1024.
Условия работы.
температура окружающего воздуха -15 - +25 °С;
относительная влажность - 45-75%.
содержание вредных веществ, пыли и подвижного воздуха в рабочей зоне соответствует нормам ГОСТ 12.1.005, 12.1.007; комплекс должен удовлетворять санитарным правилам и нормам СанПиН 2.2.2/2.4.1340-03.
А.2 Характеристика программы
Программа разработана в среде Idea на языке высокого уровня Java. Интерфейс создается во время выполнения программы с помощью html. Данные программы хранятся в базе данных формата PostgreSQL. Обращение к базе данных из процедур на Java выполняется с помощью встроенных команд языка SQL.
Для установки программы, необходимо скопировать содержимое инсталляционного архива на жесткий диск, распаковать его в произвольный каталог, не содержащий кириллицы в своём имени.
Для переноса данных из программы, достаточно скопировать файл дамп бд, содержащий все данные пользователей.
А.3 Обращение к программе
Программа поддерживает следующие команды от пользователей:
Добавить вуз
Добавить критерий
Добавить оценку по критерию
Редактировать информацию о вузе
Редактировать информацию о критерии
Редактировать информацию об оценки по критерию
Расчет векторов прогрессивности
Расчет эффективности вузов по Парето
Расчет "минимальных" векторов прогрессивности
Выбор критериев
Выбор вуза
Некоторые обращения доступны только для конкретных типов пользователей -- так, пользователь-участник не может добавлять вуз и данные по нему.
А.4 Входные и выходные данные
Входными данными программы являются проекты и их файлы. Пользователи, работая с данными, получают на выходе результаты оценки в комплексной форме:
Таблица эффективности вузов
Таблицы векторов прогрессивности
В режиме администратора базы, входными и выходными данными также являются списки пользователей, вузов и критериев.
ПРИЛОЖЕНИЕ Б
Руководство оператора
Б.1 Назначение программы
Программа предназначена для оценки вузов по выбранным критериям. Данные критерии выбираются исходя из того, на что ориентирован данный рейтинг и что хочет получить пользователь.
Программа имеет разделение прав доступа на 2 группы пользователей:
Участник
Администратор
Каждый пользователь получает свои собственные экранные формы для выполнения своих задач в программе, содержащие все необходимые компоненты для ввода и обработки данных.
Б.2 Условия выполнения программы
Для начала работы в программе, необходимо выполнить авторизацию, после чего откроется окно с кнопками и функциями пользователя, который вошел в программу. Перед началом работы, база данных должна быть закрыта.
Б.3 Требования к персоналу (пользователю)
Пользователь программы должен иметь представление о вводе данных в экранные формы и навыки работы с базами данных через пользовательский интерфейс. Все компоненты графического интерфейса являются стандартными для оконных программ Windows, знаний программирования или языка обращений к базам данных не требуется.
Пользователь-администратор, помимо перечисленного, еще должен понимать структуру записей базы данных, чтобы корректно ввести новые записи в отдельные таблицы -- в первую очередь, понятие первичных и уникальных ключей таблицы.
Б.4 Выполнение программы
После успешной авторизации, пользователь получает свою экранную форму. Работа с экранными формами заключается в вызове нужных функций кнопками, и где это необходимо -- вводе данных в поля ввода или выбора значений из выпадающих списков.
Ниже перечислены действия, которые будет выполнять пользователь после входа в программу.
Участник:
Выбор критериев;
Просмотр таблицы векторов прогрессивности;
Просмотр таблицы эффективности вузов;
Просмотр таблицы "минимальных" векторов прогрессивности.
Администратор:
Добавление и удаление записей в таблицах базы данных;
Просмотр оценок всех вузов;
ПРИЛОЖЕНИЕ Г
Листинг программы
Расчет эффективности вузов по - Парето
import datebaseHelpers.CriterionHelper;
import datebaseHelpers.UniversityHelper;
import datebaseHelpers.ValueHelper;
import hibernate.model.Criterion;
import hibernate.model.University;
import hibernate.model.Value;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class RatingHelper {
public static Object[] buildTable(String search) throws ClassNotFoundException, SQLException {
List<Criterion> criterions = CriterionHelper.selectCriterions();
ArrayList<String> modelTable = buildModelTable(criterions);
ArrayList<String> headTable = buildHeadTable(criterions);
ArrayList<ArrayList<String>> table = buildBodyTable(criterions);
sort(table, modelTable, search);
Object[] result = new Object[3];
result[0] = modelTable;
result[1] = headTable;
result[2] = table;
return result;
}
public static ArrayList<String> buildModelTable(List<Criterion> criterions) throws ClassNotFoundException, SQLException {
ArrayList<String> modeltable = new ArrayList<String>();
modeltable.add("");
modeltable.add("");
for (Criterion criterion: criterions) {
modeltable.add(criterion.getId().toString());
}
return modeltable;
}
private static ArrayList<String> buildHeadTableAllUniversitys(List<Criterion> criterions) throws ClassNotFoundException, SQLException {
ArrayList<String> headTable = new ArrayList<String>();
headTable.add("Название");
for (Criterion criterion: criterions) {
headTable.add(criterion.getName());
}
return headTable;
}
private static ArrayList<ArrayList<String>> buildBodyTableAllUniversitys(List<Criterion> criterions) throws ClassNotFoundException, SQLException {
List<University> universitys = UniversityHelper.selectUniversitys();
ArrayList<ArrayList<String>> table1 = new ArrayList<ArrayList<String>>();
for (University university: universitys) {
ArrayList<String> row1 = new ArrayList<String>();
row1.add("");
row1.add("");
row1.add(university.getName());
row1.add("");
row1.add("");
for (Criterion criterion: criterions) {
List<Value> values = ValueHelper.selectValuesUniversity(university);
Double localValue = 0.0;
for (Value value: values) {
if (value.getCriterion().getId() == criterion.getId()) {
localValue = value.getValue();
break;
}
}
row1.add(localValue.toString());
}
table1.add(row1);
}
String[] maxValue = getMaxValuesCriterions(criterions);
ArrayList<ArrayList<String>> table2 = new ArrayList<ArrayList<String>>();
for (int i = 0; i < table1.size(); i++) {
ArrayList<String> first = table1.get(i);
ArrayList<String> row2 = new ArrayList<String>();
row2.add("Сравниваем " + first.get(2) + " со всеми");
for (Criterion c: criterions) {
row2.add("");
}
table2.add(row2);
Double sum = 0.0;
for (int j = 0; j < table1.size(); j++) {
ArrayList<String> second = table1.get(j);
row2 = new ArrayList<String>();
row2.add(second.get(2));
int ii = 0;
for (int k = 0; k < criterions.size(); k++) {
double f = Double.valueOf(first.get(5 + k));
double s = Double.valueOf(second.get(5 + k));
if (f >= s) {
row2.add("0");
} else {
double r = s - f;
double maxVal = Double.valueOf(maxValue[ii]);
double localCoef = (maxVal == 0) ? 0: r / maxVal;
row2.add(String.format("%.2f", r));
sum += localCoef;
}
ii++;
}
table2.add(row2);
}
first.set(1, String.format("%.2f", sum));
}
return table2;
}
private static String[] getMaxValuesCriterions(List<Criterion> criterions) throws ClassNotFoundException, SQLException {
String[] maxValues = new String[criterions.size()];
int i = 0;
for (Criterion criterion: criterions) {
maxValues[i] = CriterionHelper.getMaxValueCriterion(criterion.getId().toString()).toString();
i++;
}
return maxValues;
}
public static Object[] buildTableByUnversity(String universityId, String[] chooseCriterionIds) throws ClassNotFoundException, SQLException {
List<Criterion> chooseCriterions = new ArrayList<Criterion>();
List<Criterion> criterions = CriterionHelper.selectCriterions();
for (Criterion criterion: criterions) {
for (String chooseCriterionId: chooseCriterionIds) {
if (chooseCriterionId.equals(criterion.getId().toString())) {
chooseCriterions.add(criterion);
break;
}
}
}
University university = UniversityHelper.selectUniversity(universityId);
ArrayList<String> modelTable = buildModelTableByUnversity(chooseCriterions);
ArrayList<String> headTable = buildHeadTableByUnversity(chooseCriterions);
ArrayList<ArrayList<String>> table = buildBodyTableByUnversity(university, chooseCriterions);
Object[] result = new Object[3];
result[0] = modelTable;
result[1] = headTable;
result[2] = table;
return result;
}
public static ArrayList<String> buildModelTableByUnversity(List<Criterion> criterions) throws ClassNotFoundException, SQLException {
ArrayList<String> modeltable = new ArrayList<String>();
modeltable.add(""); //название
for (Criterion criterion: criterions) {
modeltable.add(criterion.getId().toString());
}
return modeltable;
}
public static ArrayList<String> buildHeadTableByUnversity(List<Criterion> criterions) throws ClassNotFoundException, SQLException {
ArrayList<String> headTable = new ArrayList<String>();
headTable.add("Название");
for (Criterion criterion: criterions) {
headTable.add(criterion.getName());
}
return headTable;
}
public static ArrayList<ArrayList<String>> buildBodyTableByUnversity(University univer, List<Criterion> criterions) throws ClassNotFoundException, SQLException {
List<University> universitys = UniversityHelper.selectUniversitys();
ArrayList<ArrayList<String>> table1 = new ArrayList<ArrayList<String>>();
for (University university: universitys) {
ArrayList<String> row1 = new ArrayList<String>();
row1.add("");
row1.add("");
row1.add(university.getName());
row1.add("");
row1.add("");
for (Criterion criterion: criterions) {
List<Value> values = ValueHelper.selectValuesUniversity(university);
Double localValue = 0.0;
for (Value value: values) {
if (value.getCriterion().getId() == criterion.getId()) {
localValue = value.getValue();
break;
} }
row1.add(localValue.toString());
}
table1.add(row1);
}
String[] maxValue = getMaxValuesCriterions(criterions);
ArrayList<ArrayList<String>> table2 = new ArrayList<ArrayList<String>>();
for (int i = 0; i < table1.size(); i++) {
ArrayList<String> first = table1.get(i);
ArrayList<String> row2;
Double sum = 0.0;
for (int j = 0; j < table1.size(); j++) {
ArrayList<String> second = table1.get(j);
row2 = new ArrayList<String>();
row2.add(second.get(2));
int ii = 0;
for (int k = 0; k < criterions.size(); k++) {
double f = Double.valueOf(first.get(5 + k));
double s = Double.valueOf(second.get(5 + k));
if (f >= s) {
row2.add("0");
} else {
double r = s - f;
double maxVal = Double.valueOf(maxValue[ii]);
double localCoef = (maxVal == 0) ? 0: r / maxVal;
row2.add(String.format("%.2f", r));
sum += localCoef;
}
ii++;
}
if (first.get(2).equals(univer.getName())) {
table2.add(row2);
} }
first.set(1, String.format("%.2f", sum));
}
return table2;
}
public static Object[] buildTableEfficiency(String[] chooseCriterionIds, String search) throws ClassNotFoundException, SQLException {
List<Criterion> chooseCriterions = new ArrayList<Criterion>();
List<Criterion> criterions = CriterionHelper.selectCriterions();
for (Criterion criterion: criterions) {
for (String chooseCriterionId: chooseCriterionIds) {
if (chooseCriterionId.equals(criterion.getId().toString())) {
chooseCriterions.add(criterion);
break;
}
}
}
ArrayList<String> modelTable = buildModelTableEfficiency(chooseCriterions);
ArrayList<String> headTable = buildHeadTableEfficiency(chooseCriterions);
ArrayList<ArrayList<String>> table = buildBodyTableEfficiency(chooseCriterions);
if ("0".equals(search)) search=null;
sort(table, modelTable, search);
Object[] result = new Object[3];
result[0] = modelTable;
result[1] = headTable;
result[2] = table;
return result;
}
public static ArrayList<String> buildModelTableEfficiency(List<Criterion> criterions) throws ClassNotFoundException, SQLException {
ArrayList<String> modeltable = new ArrayList<String>();
modeltable.add("");
modeltable.add("");
modeltable.add("");
modeltable.add("");
modeltable.add("");
for (Criterion criterion: criterions) {
modeltable.add(criterion.getId().toString());
}
modeltable.add("");
return modeltable;
}
public static ArrayList<String> buildHeadTableEfficiency(List<Criterion> criterions) throws ClassNotFoundException, SQLException {
ArrayList<String> headTable = new ArrayList<String>();
headTable.add("Позиция");
headTable.add("Рейтинг");
headTable.add("Название");
headTable.add("Эффективность по - Парето");
headTable.add("Доминирующие вузы");
for (Criterion criterion: criterions) {
headTable.add(criterion.getName());
}
headTable.add("");
return headTable;
}
public static ArrayList<ArrayList<String>> buildBodyTableEfficiency(List<Criterion> criterions) throws ClassNotFoundException, SQLException {
List<University> universitys = UniversityHelper.selectUniversitys();
ArrayList<ArrayList<String>> table1 = new ArrayList<ArrayList<String>>();
for (University university: universitys) {
ArrayList<String> row1 = new ArrayList<String>();
row1.add("");
row1.add("");
row1.add(university.getName());
row1.add("");
row1.add("");
for (Criterion criterion: criterions) {
List<Value> values = ValueHelper.selectValuesUniversity(university);
Double localValue = 0.0;
for (Value value: values) {
if (value.getCriterion().getId() == criterion.getId()) {
localValue = value.getValue();
break;
} }
row1.add(localValue.toString());
}
row1.add("<a href=\"user_listUniversityOne.jsp?&universityId="+university.getId().toString()+"\">Таблица прогрессивности</a>");
table1.add(row1);
}
String[] maxValue = getMaxValuesCriterions(criterions);
ArrayList<ArrayList<String>> table2 = new ArrayList<ArrayList<String>>();
for (int i = 0; i < table1.size(); i++) {
ArrayList<String> first = table1.get(i);
ArrayList<String> row2 = new ArrayList<String>();
row2.add("Сравниваем " + first.get(2) + " со всеми");
for (Criterion c: criterions) {
row2.add("");
}
row2.add("");
table2.add(row2);
Double sum = 0.0;
for (int j = 0; j < table1.size()-1; j++) {
ArrayList<String> second = table1.get(j);
row2 = new ArrayList<String>();
row2.add(second.get(2));
int ii = 0;
for (int k = 0; k < criterions.size(); k++) {
double f = Double.valueOf(first.get(5 + k));
double s = Double.valueOf(second.get(5 + k));
if (f >= s) {
row2.add("0");
} else {
double r = s - f;
double maxVal = Double.valueOf(maxValue[ii]);
double localCoef = (maxVal == 0) ? 0: r / maxVal;
row2.add(String.valueOf(r));
sum += localCoef;
}
ii++;
}
table2.add(row2);
}
sum = sum * 1000;
int sumI = (int) Math.round(sum);
sum = (double)sumI / 1000;
first.set(1, sum.toString());
}
for (int i = 0; i < table1.size(); i++) {
for (int j = table1.size() - 1; j > i; j--) {
ArrayList<String> a = table1.get(j);
ArrayList<String> b = table1.get(j - 1);
if (Double.valueOf(a.get(1)) < Double.valueOf(b.get(1))) {
table1.set(j - 1, a);
table1.set(j, b);
} } }
for (int i = 0; i < table1.size(); i++) {
table1.get(i).set(0, String.valueOf(i + 1));
}
for (int i = 0; i < table1.size() - 1; i++) {
for (int j = i + 1; j < table1.size(); j++) {
ArrayList<String> rowI = table1.get(i);
ArrayList<String> rowJ = table1.get(j);
int nl = 0;
int nx = 0;
int nn = 0;
for (int k = 5; k < rowI.size()-1; k++) {
if (Double.valueOf(rowI.get(k)) > Double.valueOf(rowJ.get(k))) {
nl++;
}else if (Double.valueOf(rowI.get(k)) < Double.valueOf(rowJ.get(k))) {
nx++;
}else {
nn++;
} }
if (nl + nn == rowJ.size() - 6) {
rowJ.set(3, "неэффективен");
rowJ.set(4, rowJ.get(4) + "," + rowI.get(0));
}
if (nx + nn == rowI.size() - 6) {
rowI.set(3, "неэффективен");
rowI.set(4, rowI.get(4) + "," + rowJ.get(0));
} } }
return table1;
}
public static ArrayList<ArrayList<String>> sort(ArrayList<ArrayList<String>> table, ArrayList<String> modelTable, String criterionId) {
for (int k = 0; k < modelTable.size(); k++) {
if (modelTable.get(k).equals(criterionId)) {
for (int i = 0; i < table.size(); i++) {
for (int j = table.size() - 1; j > i; j--) {
ArrayList<String> a = table.get(j);
ArrayList<String> b = table.get(j - 1);
if (Double.valueOf(a.get(k)) > Double.valueOf(b.get(k))) {
table.set(j - 1, a);
table.set(j, b);
} } }
break;
} }
return table;
} }
Размещено на Allbest.ru
...Подобные документы
Изучение проектирования программного продукта для автоматизации оценки банковских рисков, обеспечивающего быструю обработку потоков информации об операциях коммерческого банка. Исследование способов защиты информации локальной реляционной базы данных.
курсовая работа [2,5 M], добавлен 29.06.2011Варианты высших учебных заведений (ВУЗов), определение критериев их оценки. Построение модели комплексного оценивания по каждому ВУЗу. Экспертные и комплексные оценки альтернатив. Функции чувствительности по критериям. Выявление наиболее престижного ВУЗа.
контрольная работа [2,2 M], добавлен 13.11.2013Проектирование программного обеспечения для классифицирования выпускников высшего учебного заведения. Выбор системы управления базами данных и языка программирования. Разработка структуры данных, схема базы данных. Реализация программного комплекса.
дипломная работа [2,4 M], добавлен 27.03.2013Анализ программно-технических решений по учету оборудования торгового эквайринга. Разработка архитектуры программного комплекса учета оборудования. Система управления контентом. Выбор CMS. Менеджер пользователей. Структура информационной базы данных.
дипломная работа [1,8 M], добавлен 19.01.2017Автоматизация оценки востребованности территорий города в объектах розничной торговли для определения оптимального местоположения для осуществления выбранного вида розничной торговли. Проектирование модели анализа данных. Разработка программного средства.
дипломная работа [1,7 M], добавлен 14.07.2016Обзор и анализ программных технологий создания WEB-приложений для аналитической обработки данных. Разработка многомерных моделей данных для построения OLAP-кубов по международному научно-техническому и образовательному сотрудничеству вузов России.
дипломная работа [3,8 M], добавлен 16.05.2013Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.
дипломная работа [1008,9 K], добавлен 13.10.2013Разработка проекта программного комплекса для автоматизации информационных процессов службы сбыта пищевой продукции. Разработка информационной базы данных и характеристика процесса создания клиентской и сервисной части приложения по технологии ASP.NET.
дипломная работа [2,4 M], добавлен 24.06.2011Автоматизация расчетов выполнения весенне-полевых работ в сельском хозяйстве средствами Системы управления базы данных. Структура входной и выходной информации. Блок-схема алгоритма решения задачи. Краткое описание программного средства обработки данных.
контрольная работа [58,8 K], добавлен 07.04.2014Порядок проектирования и разработки базы данных и программного обеспечения. Информация о структуре базы данных, созданных таблицах, формах, отчетах, запросах, хранимой информации. Логическая и концептуальная модели данных; выбор программного обеспечения.
курсовая работа [906,6 K], добавлен 20.01.2010Функциональная структура приложения. Спецификация и структурная диаграмма программного комплекса. Блок-схемы алгоритмов ряда модулей. Данные для тестирования программных модулей и программного комплекса в целом, инструкция пользователя по работе с ним.
курсовая работа [58,5 K], добавлен 25.02.2012Общая характеристика и функциональное назначение проектируемого программного обеспечения, требования к нему. Разработка и описание интерфейса клиентской и серверной части. Описание алгоритма и программной реализации приложения. Схема базы данных.
курсовая работа [35,4 K], добавлен 12.05.2013Разработка и реализация программного комплекса для обеспечения возможности проведения тестирования в образовательной среде. Разработка структура системы, базы данных, алгоритмов, интерфейса пользователя. Технико-экономическое обоснование проекта.
дипломная работа [3,3 M], добавлен 03.09.2012Создание программного комплекса, обеспечивающего работу со структурой данных "Q-дерево", представленной в виде модели. Методы, применяемые в разработке. Особенности проектирования модуля UnitModel. Требования к информационной и программной совместимости.
курсовая работа [2,8 M], добавлен 11.02.2010Цели и проблемы оценки качества экспедиционных услуг. Разработка экономически эффективного и конкурентоспособного программного продукта, позволяющего автоматизировать деятельность предприятия. Создание базы данных и основных модулей системы "Фрахт".
дипломная работа [1,1 M], добавлен 24.05.2014Разработка программного комплекса и описание алгоритма. Разработка пользовательского интерфейса. Анализ тестовых испытаний программного блока. Защита пользователей от воздействия на них опасных и вредных факторов. Режимы работы программного комплекса.
дипломная работа [1,7 M], добавлен 14.03.2013Классификация информационных систем. Система "1С:Предприятие", структура данных и основные средства конфигурирования. Составление алгоритма программы прогнозирования товарного спроса. Характеристика и оценка прогрессивности научно-технической продукции.
дипломная работа [1,6 M], добавлен 21.04.2012Классификация систем поддержки принятия решений. Сравнительный анализ методик для оценки рисков розничного кредитования. Структура системы поддержки принятия решений, формирование начальной базы знаний. Проектирование базы данных информационной системы.
дипломная работа [1,9 M], добавлен 10.07.2017Разработка проектных решений по созданию автоматического рабочего места менеджера сервисного центра для ООО "Пионер". Проектирование структуры базы данных. Логическая структура программы. Схема работы с программным продуктом, особенности его установки.
дипломная работа [1,9 M], добавлен 11.02.2013Программный комплекс Лонгитюд. Разработка алгоритмов и базы данных. Программа KID RCDI для точной оценки развития ребенка. Разработка технической документации. Использование инструкции по применению Веб-приложения. Анализ существующих систем и подходов.
дипломная работа [1,2 M], добавлен 19.01.2017