Программный комплекс классифицирования выпускников высшего учебного заведения (учебный аспект)

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 27.03.2013
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • 1. Анализ предметной области и постановка задачи
  • 1.1 Теория классифицирования
  • 1.1.1 Система классификации
  • 1.1.2 Математические методы классификации
  • 1.2 Основания для разработки
  • 1.2.1 Описание проблемы
  • 1.2.2 Техническое задание на разработку программного продукта
  • 1.3 Выбор метода решения задачи
  • 1.3.1 Авторегрессия
  • 1.3.2 Метод наименьших квадратов
  • 1.3.3 Математическая постановка задачи
  • 1.4 Выбор СУБД
  • 1.5 Выбор языка программирование и обоснование
  • 1.6 Выбор Web-сервера
  • 2. Моделирование и проектирование программного комплекса
  • 2.1 Требования, предъявляемые к программному комплексу
  • 2.1.1 Требования к функциональным характеристикам
  • 2.1.2 Требования к надежности
  • 2.1.3 Требования к составу и параметрам технических средств
  • 2.1.4 Требования к информационной и программной совместимости
  • 2.2 Алгоритмизация задачи
  • 2.3 Разработка структуры данных
  • 2.3.1 Разработка инфологической модели данных
  • 2.3.2 Разработка даталогической модели данных
  • 2.3.3 Проектирование схемы базы данных
  • 2.4 Проектирование архитектуры программного комплекса
  • 2.5 Организация взаимодействия пользователя с программным средством
  • 3. Реализация программного комплекса
  • 3.1 Разработка структуры данных программного комплекса
  • 3.2 Функциональная структура программного комплекса
  • 3.2.1 Модуль авторизации
  • 3.2.2 Модуль ведения базы данных
  • 3.2.3 Модуль классифицирования
  • 3.4 Назначение разработки
  • 3.4.1 Функциональное назначение
  • 3.4.2 Эксплуатационное назначение
  • 3.5 Общие сведения
  • 4. Экономическое обоснование проекта
  • 4.1 Цели и задачи
  • 4.2 Расчет трудоемкости проекта
  • 4.3 Затраты на выплату заработной платы
  • 4.4 Определение материальных расходов
  • 4.5 Определение накладных расходов
  • 4.6 Определение себестоимости проекта
  • 5. Безопасность и экологичность проекта
  • 5.1 Требования к помещениям для работы с ПЭВМ
  • 5.2 Общие требования к организации рабочих мест пользователей
  • 5.3 Требования к микроклимату на рабочих местах
  • 5.4 Требования к уровням шума и вибрации на рабочих местах
  • 5.5 Требования к освещению на рабочих местах
  • 5.6 Электробезопасность
  • 5.7 Пожарная безопасность
  • 5.8 Эргономические требования к пользовательскому интерфейсу
  • Заключение
  • Список литературы
  • Приложения

Введение

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

Классификация - система соподчиненных понятий (классов, объектов) какой-либо области знания или деятельности человека, составленная с учетом общих признаков объектов и закономерных связей между ними; позволяет ориентироваться в многообразии объектов и является источником знания о них.

Классификация осуществляется по отношению к стабильным системам. Основание классификации - фиксированные наборы признаков, которые могут более или менее значительно меняться, варьироваться в определенных границах на каждом шаге классификации, но при этом предполагается, что зафиксированные в данных признаках свойства и отношения объективно присущи системе до начала классификации. Таким образом, варианты признаков зависят от исследовательских целей, а их содержание полностью определено объектом.

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

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

1. Анализ предметной области и постановка задачи

1.1 Теория классифицирования

1.1.1 Система классификации

Важным понятием при работе с информацией является классификация объектов.

Классификация - система распределения объектов (предметов, явлений, процессов, понятий) по классам в соответствии с определенным признаком [1].

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

Свойства информационного объекта определяются информационными параметрами, называемыми реквизитами. Реквизиты представляются либо числовыми данными, например экзаменационная оценка, средний балл, либо признаками, например имя, фамилия студента.

Реквизит - логически неделимый информационный элемент, описывающий определенное свойство объекта, процесса, явления [1].

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

При любой классификации желательно, чтобы соблюдались следующие требования:

· полнота охвата объектов рассматриваемой области;

· однозначность реквизитов;

· возможность включения новых объектов [2].

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

Разработаны три метода классификации объектов: иерархический, фасетный, дескрипторный [2]. Эти методы различаются разной стратегией применения классификационных признаков. Рассмотрим основные идеи этих методов для создания систем классификации.

Представленная на рисунке 1.1 иерархическая система классификации строится следующим образом:

· исходное множество элементов составляет 0-й уровень и делится в зависимости от выбранного классификационного признака на классы (группировки), которые образуют 1-й уровень;

· каждый класс 1-го уровня в соответствии со своим, характерным для него классификационным признаком делится на подклассы, которые образуют 2-й уровень;

· каждый класс 2-го уровня аналогично делится на группы, которые образуют 3-й уровень и т.д.

Рисунок 1.1 - Иерархическая система классификации

Учитывая достаточно жесткую процедуру построения структуры классификации, необходимо перед началом работы определить ее цель, т.е. какими свойствами должны обладать объединяемые в классы объекты. Эти свойства принимаются в дальнейшем за признаки классификации [3].

В иерархической системе классификации из-за жесткой структуры особое внимание следует уделить выбору классификационных признаков.

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

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

Достоинства иерархической системы классификации:

· простота построения;

· использование независимых классификационных признаков в различных ветвях иерархической структуры [2].

· Недостатки иерархической системы классификации:

· жесткая структура, которая приводит к сложности внесения изменений, так как приходится перераспределять все классификационные группировки;

· невозможность группировать объекты по заранее не предусмотренным сочетаниям признаков.

Фасетная система классификации в отличие от иерархической позволяет выбирать признаки классификации независимо как друг от друга, так и от семантического содержания классифицируемого объекта. Признаки классификации называются фасетами (facet - рамка). Каждый фасет () содержит совокупность однородных значений данного классификационного признака. Причем значения в фасете могут располагаться в произвольном порядке хотя предпочтительнее их упорядочение.

Схема построения фасетной системы классификации в виде таблицы отображена на рисунке 1.2 Названия столбцов соответствуют выделенным классификационным признакам (фасетам), обозначенным , ,., ,., . Например, цвет, размер одежды, вес и т.д. Произведена нумерация строк таблицы. В каждой клетке таблицы хранится конкретное значение фасета. Например, фасет цвет, обозначенный , содержит значения: красный, белый, зеленый, черный, желтый.

Рисунок 1.2 - Фасетная система классификации

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

, (1.1)

где - фасет;

- количество фасетов.

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

Достоинства фасетной системы классификации:

· возможность создания большой емкости классификации, т.е. использования

· большого числа признаков классификации и их значений для создания группировок;

· возможность простой модификации всей системы классификации без изменения структуры существующих группировок [2].

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

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

Суть дескрипторного метода классификации заключается в следующем:

· отбирается совокупность ключевых слов или словосочетаний, описывающих определенную предметную область или совокупность однородных объектов. Причем среди ключевых слов могут находиться синонимы;

· выбранные ключевые слова и словосочетания подвергаются нормализации, т.е. из совокупности синонимов выбирается один или несколько наиболее употребляемых;

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

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

· синонимические указывающие некоторую совокупность ключевых слов как синонимы;

· родовидовые, отражающие включение некоторого класса объектов в более представительный класс;

· ассоциативные, соединяющие дескрипторы, обладающие общими свойствами [2].

1.1.2 Математические методы классификации

В 60-х годах XX века внутри прикладной статистики достаточно четко оформилась область, посвященная методам классификации. Несколько модифицируя формулировки М. Дж. Кендалла и А. Стьюарта 1966 г. [3], выделим три подобласти: дискриминация, кластеризация, группировка.

В дискриминантном анализе классы предполагаются заданными обучающими выборками. Задача состоит в том, чтобы вновь поступающий объект отнести в один из этих классов. У понятия "дискриминация" имеется много синонимов: распознавание образов, диагностика, статистическая классификация и т.д.

При кластеризации и группировке целью является выявление и выделение классов. Задача кластер-анализа "состоит в выяснении по эмпирическим данным, насколько элементы "группируются" или распадаются на изолированные "скопления", "кластеры"" [4]. Иными словами, задача - выявление "естественного" разбиения на классы, свободного от субъективизма исследователя, а цель - выделение групп однородных объектов, сходных между собой, при резком отличии этих групп друг от друга.

база программный классифицирование выпускник

При группировке, наоборот, "мы хотим разбить элементы на группы независимо от того, естественны ли границы разбиения или нет" [4]. Цель состоит в выявлении групп однородных объектов, сходных между собой (как в кластер-анализе), однако "соседние" группы могут не иметь резких различий (в отличие от кластер-анализа). Границы между группами условны, зависят от субъективизма исследователя.

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

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

Термином "классификация" обозначают, по крайней мере, три разные вещи: процедуру построения классификации, построенную классификацию и процедуру ее использования" [1]. Статистический анализ полученных, в частности экспертами, классификаций - часть статистики бинарных отношений и тем самым - статистики объектов нечисловой природы. Процедура использования классификации, т.е. отнесения вновь поступающего объекта к одному из классов - предмет дискриминантного анализа. Как отмечалось [5], он является частным случаем общей схемы регрессионного анализа. Однако есть ряд специфических постановок.

Часто рекомендуют сначала проводить классификацию, а потом регрессионный анализ (в классическом смысле). Однако при этом нельзя опираться на нормальную модель, так как не будет нормальности в кластерах [6].

В прикладных исследованиях применяют различные методы дискриминантного анализа, основанные на вероятностных моделях [7]. Независимо от "происхождения", каждый подобный алгоритм должен быть исследован как на вероятностных моделях, так и на массивах реальных данных. Цель исследования - выбор наилучшего в определенной области применимости, включение его в стандартный пакет программ, учебные пособия. Но для этого надо уметь сравнивать алгоритмы по качеству. Часто используют показатель "вероятность правильной классификации" (при обработке конкретных данных - "частота правильной классификации").

Процедуры построения классификации делятся на вероятностные и детерминированные. Задачи построения классификации целесообразно разбить на два типа: с четко разделенными кластерами (задач кластер-анализа) и с условными границами, непрерывно переходящими друг в друга классами (задачи группировки). Такое деление полезно, хотя в обоих случаях могут применяться одинаковые алгоритмы.

1.2 Основания для разработки

1.2.1 Описание проблемы

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

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

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

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

1.2.2 Техническое задание на разработку программного продукта

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

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

Кроме того, данный комплекс должен обеспечивать следующие функциональные возможности:

· высчитывать точные значения признаков классифицирования для каждого студента: успешность обучения, тенденция успешности и устойчивость тенденции;

· выдавать список студентов, классифицированных по вышеперечисленным признакам;

· выдавать подробную информацию по этим признакам для каждого студента индивидуально.

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

1.3 Выбор метода решения задачи

1.3.1 Авторегрессия

Известно, что в задачах, связанных с обработкой результатов измерений в информационно-измерительных комплексах, с корреляционным и спектральным анализом принимаемых сигналов, с фильтрацией и прогнозированием сигналов, с распознаванием образов, классифицированием данных и др., часто используются авторегрессионные модели представления данных [8].

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

, (1.2)

где - параметры, подлежащие оцениванию на основе имеющихся статистических данных (наблюдений);

- случайная компонента или ошибка уравнения в момент , ;

- порядок авторегрессии.

Основой для построения модели авторегрессии временного ряда является изучение его автокорреляционных свойств. В наиболее общем виде автокорреляционные свойства временного ряда учитываются в смешанной модели авторегрессии скользящего среднего (АРСС или ARMA - autoregressive-moving average).

Авторегрессионный процесс первого порядка описывается уравнением

(1.3)

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

Одна из основных проблем, возникающих при использовании авторегрессии, состоит в оценивании неизвестного параметра .

Наиболее часто для оценивания используется метод наименьших квадратов, в соответствии с которым параметр рассматривается по формуле

. (1.4)

1.3.2 Метод наименьших квадратов

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

МНК - простой и быстрый способ получить неизвестные параметры в функциональных зависимостях и оценить их погрешности.

Можно выделить следующие достоинства метода:

· расчеты сводятся к механической процедуре нахождения коэффициентов;

· доступность полученных математических выводов.

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

1.3.3 Математическая постановка задачи

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

Классифицирование - процесс отнесения объекта к определенному подразделению какой-либо классификации, производимый на основе определения наличия или отсутствия заданного признака у объекта. В качестве признака, в данном случае, выступают числовые значения, а именно экзаменационные оценки и параметры, рассчитанные на основе этих оценок.

Классифицирование необходимо произвести по трем признакам.

а) успешность обучения - средний балл студента. Признак, по которому студента можно отнести к одному из трех классов:

1) средний балл - качество удовлетворительное;

2) средний балл - качество хорошее;

3) средний балл - качество отличное.

б) тенденция успешности. Выявляет, как на протяжении всего периода обучения изменяется средний балл студента в каждой сессии. В зависимости от этого можно выделить следующие классы:

1) прогресс ();

2) регресс ();

3) стабильность ().

в) устойчивость тенденции. Показывает насколько устойчиво в течение 9 семестров у студента проявляются прогресс, регресс или стабильность. Выражается в процентном отношении:

1) - устойчивая тенденция;

2) - неустойчивая тенденция.

Для этого первоначально для каждого студента формируется вектор средних оценок за 9 аттестационных семестров

, (1.5)

где - студент;

- средний балл в сессии , .

Затем строится модель авторегрессии

, , (1.6)

где - номер студента;

- средний балл студента в семестре ;

- случайная ошибка;

- неизвестный параметр, который в дальнейшем выступает в качестве одного из признаков классифицирования - тенденция успешности.

Сделав выводы из всего вышесказанного, полагаем наиболее приемлемым для оценивания параметра метод наименьших квадратов.

Сформируем два вектора и

, (1.7)

, (1.8)

Затем с помощью метода наименьших квадратов находим неизвестный нам параметр

, (1.9)

где - номер студента;

- средний балл студента в семестре .

В результате получаем для каждого студента числовое значение параметра , в зависимости от которого можно распределить студентов на три класса:

· - прогресс;

· - регресс;

· - стабильность.

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

, , (1.10)

И последним шагом в процессе классификации выпускников будет расчет устойчивости тенденции

. (1.11)

1.4 Выбор СУБД

СУБД - комплекс языковых и программных средств, предназначенный для создания, ведения и совместного использования БД многими пользователями. Обычно СУБД различают по используемой модели данных [9].

Для реализации программного комплекса выбрана СУБД MySQL.

MySQL - система управления реляционными базами данных.

Сервер MySQL управляет доступом к данным, позволяя работать с ними одновременно нескольким пользователям, обеспечивает быстрый доступ к данным и гарантирует предоставление доступа только имеющим на это право пользователям.

MySQL может использоваться в среде многих различных систем UNIX, а также в среде Microsoft Windows.

MySQL - бесплатный продукт с открытым исходным кодом. При этом по своим возможностям и характеристикам он удовлетворяет самым жестким требованиям:

· быстрота работы;

· поддержка языка запросов SQL;

· безопасность;

· переносимость;

· малый размер;

· работоспособность и цена;

· свободное распространение;

· поддержка (регулярный выход новых версий, список рассылки) [10].

1.5 Выбор языка программирование и обоснование

Языки программирования (ЯП) для web-приложений делятся на используемые на стороне клиента (client side scripting language) и используемые на стороне сервера (server side scripting language).

Код программ, работающих на стороне клиента, выполняется в браузере, запущенном на компьютере пользователя. Этот код пишется на языках JavaScript и VBScript. Программы на этих языках встраиваются в код web-страниц или выносятся в отдельный файл, обращение к которому осуществляется из web-страницы [10].

Серьезным недостатком языков JavaScript и VBScript является доступность просмотра кода страницы в браузере или при сохранении страницы на диске и открытии любым текстовым редактором. Это создает сразу две проблемы: невозможность скрытия исходного кода и огромная "дыра" в безопасности.

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

Для решения таких задач необходима разработка приложений, используемых на стороне сервера. Эти приложения пишутся на таких языках программирования, как PHP, ASP, Perl, Java.

PHP - это язык обработки гипертекста, используемый на стороне сервера, конструкции которого вставляются в HTML-текст. PHP отличается от других языков программирования своей простотой, синтаксис позволяет быстро освоить этот язык любому, кто знаком с HTML [10].

Также PHP позволяет отделить HTML-текст от выполняемой части, за счет чего можно добиться значительного снижения затрат времени на разработку проекта.

Язык Perl (Practical Extraction and Report Language) является

интерпретируемым языком, который появился еще до появления Internet. Язык Perl разработан в конце 80-х годов и получил распространение потому, что был доступен на каждом web-сервере и альтернативой ему являлся только более сложный, чем Perl, язык С [10].

Язык Perl создавался для разработки самых разных приложений, и потому в значительной степени избыточен. Для реализации web-приложений подходит язык PHP, который наиболее просто интегрируется с уже имеющимся HTML и дает возможность аналогичные задачи решать с меньшими трудозатратами, чем язык Perl.

Язык Java - C-подобный язык, который разрабатывался как упрощенная и улучшенная версия языка С++. Его достоинством является переносимость и объектно-ориентированность, что позволяет создавать сложные и объемные приложения. Но у языка Java есть и недостатки: медленное выполнение и потребление большого количества памяти, а также сложность разработки web-приложений по сравнению с языком PHP, практически не уступающим Java в гибкости и масштабируемости созданных приложений [10].

Язык ASP.net (Active Server Pages) - язык программирования сценариев от Microsoft. Язык ASP уступает PHP по многим параметрам, и, в первую очередь, по времени исполнения программ.

Особенностью этого языка является возможность использовать любой язык программирования среды исполнения NET (Visual Basic.net, C#, J#). В рамках одного приложения может быть использовано несколько языков.

Недостатком языка ASP.net является невозможность выполнения на серверах, работающих не под Windows. Кроме того, если страница активно использует компоненты NET, ее просмотр возможен только в браузере Internet Explorer [10].

Все это говорит о явных преимуществах реализации программного комплекса на языке PHP.

Главным фактором при проектировании языка РНР является практичность.

РНР должен предоставить программисту средства для быстрого и эффективного решения поставленных задач. Практический характер РНР обусловлен шестью важными характеристиками:

· традиционностью. Язык РНР кажется знакомым программистам, работающим в разных областях. Многие конструкции языка позаимствованы из Си Perl, а нередко код РНР практически неотличим от того, что встречается в типичных программах С или Pascal. Это заметно снижает начальные усилия при изучении РНР.

· простотой. Сценарий РНР может состоять из 10 000 строк или из одной строки - все зависит от специфики задачи. Не нужно подгружать библиотеки, указывать специальные параметры компиляции или что-нибудь в этом роде. Механизм РНР просто начинает выполнять код после первой экранирующей последовательности (<?) и продолжает выполнение до того момента, когда он встретит парную экранирующую последовательность (? >).

· эффективностью. Эффективность является исключительно важным фактором при программировании для многопользовательских сред, к числу которых относится и WWW.

· безопасностью. РНР предоставляет в распоряжение разработчиков и администраторов гибкие и эффективные средства безопасности, которые условно делятся на две категории: средства системного уровня и средства уровня приложения.

· гибкостью. Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости (впрочем, это относится ко всем основным языкам программирования). Нет проблем и с зависимостью от браузеров, поскольку перед отправкой клиенту сценарии РНР полностью компилируются на стороне сервера. В сущности, сценарии РНР могут передаваться любым устройствам с браузерами, включая сотовые телефоны, электронные записные книжки, пейджеры и портативные компьютеры, не говоря уже о традиционных ПК.

· существует еще одна "характеристика", которая делает РНР особенно привлекательным: он распространяется бесплатно.

1.6 Выбор Web-сервера

Web - сервер - это программное обеспечение, отвечающее за прием запросов браузеров, поиск указанных файлов и возвращение их содержимого. Сейчас большинство Web - серверов в Internet работают на UNIX - машинах.

Для использования при разработке программного комплекса был выбран Web - сервер Apache в силу того, что Apache считается наиболее эффективным http-сервером из свободно распространяемых.

2. Моделирование и проектирование программного комплекса

2.1 Требования, предъявляемые к программному комплексу

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

2.1.1 Требования к функциональным характеристикам

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

а) ведение базы данных групп, студентов, предметов, результатов сдачи сессии в течение учебного года и предоставление необходимой информации пользователю:

1) ввод данных;

2) редактирование хранящейся информации;

3) удаление устаревшей информации.

б) классифицирование выпускников:

1) высчитывать точные значения признаков классифицирования для каждого студента: успешность обучения, тенденция успешности и устойчивость тенденции;

2) выдавать список студентов, классифицированных по вышеперечисленным признакам;

3) выдавать подробную информацию по этим признакам для каждого студента индивидуально.

в) авторизация пользователей:

1) администратор;

2) гость.

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

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

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

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

Ассоциация - единственно возможная связь между актером и вариантом использования. Она показывает, что они общаются друг с другом, посылая и получая сообщения.

Диаграмма вариантов использования для проектируемого программного комплекса представлена на рисунке 2.1.

Рисунок 2.1 - Диаграмма вариантов использования

Программный комплекс должен быть прост в установке и обслуживании.

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

2.1.2 Требования к надежности

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

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

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

· идентификацию пользователя;

· проверку полномочий пользователя при работе с комплексом.

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

2.1.3 Требования к составу и параметрам технических средств

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

а) CPU (Процессор) - Intel Pentium/Celeron/Core2, AMD K6/Athlon/Duron/Phenom с частотой не менее 300 МГц;

б) рекомендуется не менее128 МБ ОЗУ;

в) монитор и видеоадаптер SVGA с разрешением не менее 800*600;

г) OC семейств Windows или Linux;

д) web-браузер:

1) Mozilla Firefox v.2.0 - v.3.0.10;

2) Opera v.9.64;

3) Internet Explorer v8.0.

е) Клавиатура, мышь.

2.1.4 Требования к информационной и программной совместимости

Программа должна работать под управлением любой 32-разрядной Windows системы без необходимости использования сторонних библиотек.

Для проектирования программы необходимо использовать такие среды проектирования как Microsoft Visio, ArgoUML, DbWrench и Microsoft Word. Для реализации данного программного продукта используется среда разработки PHP, Web-сервер Apache и СУБД MySQL.

2.2 Алгоритмизация задачи

Функционирование программного комплекса должно осуществляться согласно структурному алгоритму, построенному исходя из требований, предъявляемых к выполняемым программой функциям. Работу всего комплекса можно представить алгоритмом, изображенным на рисунке 2.2

Рисунок 2.2 - Алгоритм работы программного комплекса

2.3 Разработка структуры данных

Проектирование БД состоит в построении комплекса взаимосвязанных моделей данных. База данных - централизованное хранилище данных, обеспечивающее хранение, доступ, первичную обработку и поиск информации [11].

Под моделью данных понимают описание предметной области с точки зрения информационных аспектов. Моделирование данных - процесс перехода к абстракциям более высокого уровня [12].

Различают инфологические, даталогические и физические модели данных.

2.3.1 Разработка инфологической модели данных

Инфологическая модель ориентирована на пользователя и не зависит от того, будет ли в дальнейшем использована какая-либо СУБД или вместо нее для реализации программного комплекса будут применяться другие программные средства. Цель инфологического моделирования - обеспечение наиболее естественных для человека способов сбора и представления той информации, о которой необходимо хранить сведения. Основными элементами инфологических моделей являются сущности, их свойства и связи между собой.

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

Атрибут - поименованная характеристика сущности.

Ключ - минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности.

Связь - ассоциирование двух или более сущностей [13].

Наиболее распространенный способ инфологического моделирования - построение ER диаграмм (от англ. Entity-Relation, то есть сущность-связь). ER диаграмма для рассматриваемой предметной области представлена на рисунке 2.3.

Рисунок 2.3 - ER диаграмма

Инфологическая модель данных должна быть отображена в даталогическую модель, "понятную" СУБД.

2.3.2 Разработка даталогической модели данных

Даталогические модели в зависимости от типа используемой СУБД делятся на иерархические, сетевые, реляционные и другие. Описание даталогической модели данных в терминах СУБД называют схемой данных [14].

В дипломном проекте используется реляционная модель данных.

Реляционная модель данных основывается на понятии отношение. Отношение представляет собой множество элементов, называемых кортежами.

Наглядной формой представления отношения является привычная для восприятия двумерная таблица. Таблица имеет строки (записи) и столбцы (колонки). Каждая строка таблицы имеет одинаковую структуру и состоит из полей. Строкам таблицы соответствуют кортежи, а столбцам - атрибуты отношения. В инфологической модели были выявлены связи между сущностями типа М: М. В даталогической и физической моделях данных для реализации связей М: М создаются промежуточные таблицы, в которых первичные ключи связываемых сущностей являются внешними ключами.

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

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

а) Categorization (классифицирование) - результирующая таблица, содержащая данные по группе студентов, классифицированных по критериям;

б) Students (студенты) - таблица содержит подробную информацию о студентах;

в) Faculty (факультет) - таблица содержит список факультетов в университете;

г) Groups (группа) - таблица содержит список групп соответственно каждому факультету;

д) Bordereau (ведомость) - таблица содержит данные об успеваемости каждого студента по каждому предмету в течение всего его периода обучения;

е) Lessons (дисциплины) - таблица содержит список изучаемых в университете дисциплин;

ж) Estimations (оценка) - таблица содержит список возможных оценок;

з) Semesters (семестр) - список семестров;

и) User (пользователь) - таблица позволяет разграничить доступ к программному комплексу.

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

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

Далее представлено описание таблиц БД для проектируемого программного комплекса.

Таблица 2.1 - Физическая структура таблицы Categorization

Атрибут

Тип

Ключ

Описание

ca_id

Integer (10)

первичный

уникальный идентификатор записи

ca_stability

VarChar (45)

-

стабильность успешности

ca_success

VarChar (45)

-

успешность обучения

ca_fixity

VarChar (45)

-

устойчивость стабильности

ca_st_id

Integer (10)

внешний

идентификатор студента

Таблица 2.2 - Физическая структура таблицы Students

Атрибут

Тип

Ключ

Описание

st_id

Integer (10)

первичный

уникальный идентификатор записи

st_fio

VarChar (100)

-

фамилия, имя, отчество студента

st_nz

Integer (10)

-

номер зачетной книжки студента

st_gr_id

Integer (10)

внешний

идентификатор группы

Таблица 2.3 - Физическая структура таблицы Faculty

Атрибут

Тип

Ключ

Описание

fa_id

Integer (10)

первичный

уникальный идентификатор записи

fa_namе

VarChar (100)

-

название факультета

Таблица 2.4 - Физическая структура таблицы Groups

Атрибут

Тип

Ключ

Описание

gr_id

Integer (10)

первичный

уникальный идентификатор записи

gr_namе

VarChar (45)

-

название группы

gr_fa_id

Integer (10)

внешний

идентификатор факультета

Таблица 2.5 - Физическая структура таблицы Bordereau

Атрибут

Тип

Ключ

Описание

bo_id

Integer (10)

первичный

уникальный идентификатор записи

bo_le_id

Integer (10)

внешний

идентификатор дисциплины

bo_se_id

Integer (10)

внешний

идентификатор семестра

bo_es_id

Integer (10)

внешний

идентификатор оценки

bo_st_id

Integer (10)

внешний

идентификатор студента

Таблица 2.6 - Физическая структура таблицы Lessons

Атрибут

Тип

Ключ

Описание

le_id

Integer (10)

первичный

уникальный идентификатор записи

le_namе

VarChar (45)

-

название дисциплины

Таблица 2.7 - Физическая структура таблицы Estimations

Атрибут

Тип

Ключ

Описание

es_id

Integer (10)

первичный

уникальный идентификатор записи

es_namе

VarChar (45)

-

оценка

Таблица 2.8 - Физическая структура таблицы Semesters

Атрибут

Тип

Ключ

Описание

se_id

Integer (10)

первичный

уникальный идентификатор записи

se_namе

VarChar (100)

-

семестр

Таблица 2.9 - Физическая структура таблицы User

Атрибут

Тип

Ключ

Описание

us_id

Integer (10)

первичный

уникальный идентификатор записи

us_login

VarChar (200)

-

логин для доступа к комплексу

Атрибут

Тип

Ключ

Описание

us_pass

VarChar (200)

-

пароль

us_level

Integer (10)

-

уровень доступа

Схема БД приведена в приложении А.

2.4 Проектирование архитектуры программного комплекса

Для того чтобы была возможность использовать программный комплекс практически в любой операционной системе (Windows, Linux) для основы была выбрана web-технология. Если программный комплекс выполнен в виде web-приложения и хранится на головном сервере, то он доступен из любой ОС через браузер, что избавляет администратора и обслуживающий персонал системы от таких задач, как установка комплекса на пользовательский компьютер, настройка его и т.д. Если в комплексе возникают сбои или ошибки, то достаточно устранить их только на сервере и исправленный комплекс сразу будет доступен всем пользователям, без переустановки его на каждой машине или обновления.

При разработке программного комплекса была использована трехуровневая архитектура "Клиент - Сервер приложений - Сервер базы данных".

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

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

Сервер базы данных обеспечивает хранение данных. Обычно это реляционная или объектно-ориентированная СУБД.

По сравнению с двухуровневой, трехуровневая архитектура обладает следующими достоинствами:

· уменьшается сетевой трафик, поскольку в сети циркулирует минимальный объем информации;

· повышается уровень безопасности информации, так как обработка запросов к БД выполняется сервером БД, который управляет доступом к ней, запрещая одновременное изменение одной записи различными пользователями, реализуя механизм транзакций и т.д.;

· повышается устойчивость Web-приложения к сбоям;

· обеспечивается взаимозаменяемость компонентов архитектуры трехуровневого приложения;

· снижается сложность модулей расширения Web-сервера, в которых отсутствует программный код, связанный с контролем БД и ограничением доступа к ней [11].

Недостатком данной архитектуры является увеличение времени обработки запросов, связанное с дополнительным обращением по сети к серверу БД.

Архитектура программного комплекса представлена на рисунке 2.5.

Рисунок 2.5 - Архитектура программного комплекса

2.5 Организация взаимодействия пользователя с программным средством

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

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

Первоначально был разработан макет пользовательского интерфейса, который представлен на рисунке 2.6.

Рисунок 2.6 - Макет пользовательского интерфейса

Область заголовка - отображают логотип программного комплекса, его название.

Меню - отображает доступные действия.

Рабочая область - отображает информацию в соответствии с последними действиями пользователя.

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

· администратор. Полный доступ без ограничений.

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

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

Отметим, что комплекс является Web-приложением, поэтому при построении необходимо учитывать тот факт, что его интерфейс отображается в окне браузера и, следовательно, ограничен возможностями этого браузера. Кроме того, как известно, браузер способен отображать страницу, описанную с помощью языка HTML. На сегодняшний день использование HTML без CSS является неэффективным, т.к. CSS способна значительно расширить базовые возможности HTML, связанные с позиционированием элементов внутри страницы.

CSS (англ. Cascading Style Sheets - каскадные таблицы стилей) - технология описания внешнего вида документа, написанного языком разметки.

Конкретные преимущества CSS:

· управление отображением множества документов с помощью одной таблицы стилей;

· более точный контроль над внешним видом страниц;

· различные представления для разных носителей информации (экран, печать, и т.д.);

· сложная и проработанная техника дизайна.

Для создания динамических страниц был применен язык JavaScript. JavaScript - объектно-ориентированный скриптовый ЯП. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

В дипломном проекте JavaScript был использован для:

· организации выпадающих меню;

· проверки данных форм до их отправки на сервер.

С учетом всех вышеперечисленных фактов на языке программирования HTML с использованием технологий CSS был разработан шаблон интерфейса программного комплекса, который представлен на рисунке 2.7.

Рисунок 2.7 - Шаблон пользовательского интерфейса

3. Реализация программного комплекса

3.1 Разработка структуры данных программного комплекса

Для разработки базы данных была выбрана программная среда разработки баз данных DbWrench. Данное средство осуществляет как прямой, так и обратный инжиниринг БД и является простым в использовании. Фрагмент разработанной в DbWrench базы данных представлен на рисунке 3.1.

Рисунок 3.1 - Окно программы DbWrench

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

Далее с помощью программного средства phpMyAdmin, представляющего собой веб-интерфейс для администрирования СУБД MySQL, используя полученный sql-файл, разработанная база данных была импортирована в СУБД MySQL.

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

Приложение программного комплекса классифицирования выпускников написано на языке программирования PHP в виде отдельных модулей и требует для работы наличия на рабочей машине локального WebServer. Для хранения данных в программном комплексе и реализации механизмов выборки данных в ходе обработки используется СУБД MySQL.

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

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

Каждый модуль программного комплекса реализуется с помощью отдельных скриптов PHP (*. php) и отвечает за определенный набор функций системы.

3.2.1 Модуль авторизации

Модуль авторизации пользователей предназначен для входа пользователей в систему, их идентификации и определения возможных действий пользователя по отношению к системе. Модуль реализован с помощью следующих скриптов PHP: index. php, login. php, config. php, get_login. php, get_info. php.

Фрагмент реализации модуля авторизации представлен в приложении Б.

3.2.2 Модуль ведения базы данных

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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.